Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/01-error-en-la-guia.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Error o imprecision en la guía
description: Algo que la especificación dice y está mal, es ambiguo o contradice al perfil de origen.
labels: ["Type: Content", "Type: Bug"]
body:
- type: input
id: ubicacion
attributes:
label: Página y sección
description: Por ejemplo, volume-1-concepts.md, sección 2.1.3, o el enlace a la sección en el sitio.
validations:
required: true
- type: textarea
id: dice
attributes:
label: Qué dice hoy
description: Cite el texto tal como está.
validations:
required: true
- type: textarea
id: problema
attributes:
label: Por qué es incorrecto
description: Si contradice a una especificación, enlace la sección exacta y cite su texto literal.
validations:
required: true
- type: textarea
id: propuesta
attributes:
label: Corrección propuesta
description: Opcional. La redacción que debería quedar.
- type: checkboxes
id: conducta
attributes:
label: Antes de enviar
options:
- label: He leído el [Código de Conducta](https://github.com/meddyg/Health-Information-Exchange/blob/main/CODE_OF_CONDUCT.md) y esto no es un hallazgo de seguridad.
required: true
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/02-contenido-nuevo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Contenido por escribir
description: Una sección, un capítulo o una capacidad que la guía aún no especifica.
labels: ["Type: Content", "Type: Enhancement"]
body:
- type: dropdown
id: parte
attributes:
label: Qué parte de la guía
options:
- Volumen 1. Arquitectura
- Volumen 2. Transacciones
- Volumen 3. Contenido y semántica
- Conformidad
- Apéndices
- Otra
validations:
required: true
- type: textarea
id: alcance
attributes:
label: Qué debe especificar
description: Qué tiene que quedar definido al terminar, y qué queda explícitamente fuera.
validations:
required: true
- type: textarea
id: fuentes
attributes:
label: Perfiles y transacciones implicados
description: Los perfiles IHE, transacciones o recursos FHIR de los que depende, con enlaces si los tiene.
- type: input
id: todo
attributes:
label: Entrada de TODO.md
description: Opcional. Si ya figura en la lista de pendientes, indique cuál.
- type: checkboxes
id: conducta
attributes:
label: Antes de enviar
options:
- label: He leído el [Código de Conducta](https://github.com/meddyg/Health-Information-Exchange/blob/main/CODE_OF_CONDUCT.md).
required: true
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/03-herramientas.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Problema al construir el sitio
description: Un comando del Makefile, el pipeline de publicación o la vista previa que no funcionan.
labels: ["Type: Bug"]
body:
- type: input
id: comando
attributes:
label: Comando
description: Por ejemplo, make site, make preview, make docs o make diagrams.
validations:
required: true
- type: textarea
id: esperado
attributes:
label: Qué esperaba y qué pasó
validations:
required: true
- type: textarea
id: salida
attributes:
label: Salida del comando
description: El error tal cual, sin recortar la línea que lo provoca.
render: shell
- type: textarea
id: entorno
attributes:
label: Entorno
description: Sistema operativo y versiones de Java, Ruby, SUSHI, pandoc y Typst, si vienen al caso.
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Preguntar en Discussions
url: https://github.com/meddyg/Health-Information-Exchange/discussions
about: Las dudas sobre la guía o sobre los perfiles en que se apoya se preguntan ahí. Los issues son para trabajo concreto.
- name: Reportar una vulnerabilidad
url: https://github.com/meddyg/Health-Information-Exchange/security/advisories/new
about: Los hallazgos de seguridad se reportan en privado, nunca en un issue público. Ver SECURITY.md.
- name: Leer la guía publicada
url: https://hix.meddyg.com/fhir/hix/
about: El sitio con la especificación, por si la duda se resuelve ahí.
16 changes: 16 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Qué cambia

<!-- Qué cambia en la especificación, no qué archivos toca. Si cierra un issue, «Closes #N». -->

## Por qué

<!-- La razón del cambio. Si altera una decisión de arquitectura, diga cuál y qué la sustituye. -->

## Antes de pedir revisión

- [ ] El PR va dirigido a `dev`.
- [ ] Si toca la arquitectura, el issue que lo respalda está enlazado, y la decisión se sostiene en las fuentes citadas.
- [ ] `make format` pasó y `make site` termina sin errores.
- [ ] Toda afirmación nueva sobre lo que exige una especificación lleva nota al pie con la sección exacta y su texto literal que la fundamenta.
- [ ] Las páginas nuevas están registradas en `pages:` y en `menu:` de `sushi-config.yaml`, y los enlaces internos apuntan al `.html`.
- [ ] Revisé el resultado en la vista previa del PR.
89 changes: 89 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Código de Conducta para Contribuyentes, versión 3.0

## Nuestro compromiso

Nos comprometemos a hacer de nuestra comunidad un espacio abierto, seguro y equitativo para todas las personas.

Estamos comprometidos a fomentar un entorno que respete y promueva la dignidad, los derechos y las contribuciones de todas las personas, independientemente su raza, etnia, casta, color, edad, características físicas, neurodiversidad, discapacidad, sexo o género, identidad o expresión de género, orientación sexual, idioma, filosofía o religión, origen nacional o social, posición socioeconómica, nivel de educación u otras condiciones. Los mismos privilegios se extienden a todas las personas que participen de buena fe y de acuerdo con este Convenio.

## Conducta esperada

Reconociendo las diferencias en las normas sociales, todos nosotros buscamos cumplir con las expectativas de buena conducta de nuestra comunidad. También entendemos que nuestras palabras y acciones pueden interpretarse de manera diferente a lo que queremos transmitir, debido a factores como la cultura, el contexto o el idioma nativo.

Con estas consideraciones en mente, acordamos respetarnos mutuamente y actuar de formas que reflejen nuestros valores compartidos, incluyendo:

1. **Respetar el propósito de nuestra comunidad**, nuestras actividades y las formas en las que interactuamos.
2. Involucrarse de manera **honesta y amable** con los demás.
3. Respetar los **diferentes puntos de vista** y experiencias.
4. **Tomar responsabilidad** de nuestras acciones y contribuciones.
5. Dar y recibir **crítica constructiva** de manera respetuosa.
6. **Reparar el daño** cuando ocurra.
7. Comportarse de cualquier otra manera que promueva y mantenga **el bienestar de nuestra comunidad**.

## Comportamientos no permitidos

Acordamos restringir los siguientes comportamientos en nuestra comunidad. Las instancias, amenazas y promoción de estos comportamientos constituyen una violación a este Código de Conducta.

1. **Acoso.** Violar los límites explicitamente establecidos por otra persona o continuar con contacto personal no deseado después de cualquier solicitud clara para detenerse.
2. **Ataques personales.** Hacer comentarios insultantes, denigrantes o despectivos sobre alguien de la comunidad o a un grupo de personas.
3. **Estereotipos o discriminación.** Catalogar o asumir la personalidad o el comportamiento de alguien con base en su identidad o rasgos inmutables.
4. **Sexualización.** Comportarse de cualquier manera que generalmente se considere íntimamente inapropiada en el contexto o propósito de la comunidad.
5. **Violación de la confidencialidad.** Compartir o hacer uso de información personal o privada de alguien sin su consentimiento.
6. **Poner en peligro.** Causar, incitar o amenazar con violencia u otro tipo de daño hacia cualquier persona o grupo.
7. Comportarse de cualquier otra manera que **amenace el bienestar** de nuestra comunidad.



### Otras restricciones

1. **Identidad engañosa.** Hacerse pasar por otra persona por cualquier razón, o fingir ser alguien más para evadir acciones disciplinarias.
2. **Falta de atribución.** No acreditar correctamente las fuentes del contenido que se contribuye.
3. **Material promocional.** Compartir contenido de marketing u otro contenido comercial de una manera que esté fuera de las normas de la comunidad.
4. **Comunicación irresponsable.** No presentar de manera responsable contenido que incluya, enlace o describa cualquier otro comportamiento restringido.


## Reportar un incidente

Pueden surgir tensiones entre miembros de la comunidad incluso cuando todos hacen su mejor esfuerzo por colaborar. No todo conflicto representa una violación al código de conducta. Este Código refuerza conductas y normas que pueden ayudar a prevenirlos y minimizar el daño.

Cuando ocurra un incidente, es importante reportarlo a la brevedad. Para reportar una posible violación, envie un correo electrónico a juan@meddyg.com.

Las personas moderadoras toman los reportes de violaciones con seriedad y harán su mejor esfuerzo por responder oportunamente. Se investigarán todos los reportes, revisando mensajes, registros y grabaciones, o entrevistando a testigos y demás participantes. El equipo moderador mantendrán las investigaciones y acciones lo más transparentes posible, priorizando siempre la seguridad y la confidencialidad. Para respetar estos valores, las acciones se llevan a cabo de manera privada con las partes involucradas, aunque comunicarlo a toda la comunidad puede ser parte de una resolución acordada por ambas partes.

## Atender y reparar el daño

Si la investigación del equipo moderador determina que este Código de Conducta ha sido infringido, se puede aplicar la siguiente escala de acciones para determinar la mejor manera de reparar el daño, según el impacto del incidente en las personas involucradas y en la comunidad en general. Dependiendo de la gravedad de la violación, algunos pasos pueden omitirse.

1. **Advertencia**
- **Situación:** Una violación que involucra un incidente único o una serie de incidentes.
- **Consecuencia:** Una advertencia privada y por escrito del equipo moderador.
- **Reparación:** Ejemplos de reparación incluyen una disculpa privada por escrito, el reconocimiento de la responsabilidad y la aclaración sobre las expectativas.

2. **Restricción temporal de actividades**
- **Situación:** Una violación repetida que previamente resultó en una advertencia, o la primera ocurrencia de una violación seria.
- **Consecuencia:** Una advertencia privada por escrito con un período de pausa temporal, diseñado para subrayar la seriedad de la situación y dar tiempo a las personas involucradas para procesar el incidente. Este período puede limitarse a ciertos canales de comunicación o interacciones con miembros específicos de la comunidad.
- **Reparación:** Ejemplos de reparación incluyen ofrecer una disculpa, usar el período de pausa para reflexionar sobre sus acciones y su impacto, y ser consciente al reintegrarse a los espacios de la comunidad.

3. **Suspensión temporal**
- **Situación:** Un patrón de violaciones repetidas que el equipo moderador ha intentado abordar con advertencias, o una violación grave única.
- **Consecuencia:** Una advertencia privada por escrito con condiciones para el regreso. En general, las suspensiones temporales dan a la persona suspendida tiempo para reflexionar sobre su comportamiento y las posibles acciones correctivas.
- **Reparación:** Ejemplos de reparación incluyen respetar el espíritu de la suspensión, cumplir con las condiciones establecidas para el regreso y reflexionar sobre cómo reintegrarse a la comunidad al levantarse la suspensión.
4. **Expulsión permanente**
- **Situación:** Un patrón de violaciones repetidas que los pasos anteriores no han logrado resolver, o una violación tan grave que el equipo moderador determina que no es posible mantener la seguridad de la comunidad con esa persona como miembro.
- **Consecuencia:** Se revoca el acceso a todos los espacios, herramientas y canales de comunicación de la comunidad. Las expulsiones permanentes deben usarse raramente, estar bien fundamentadas y ser el último recurso cuando otras medidas han fallado.
- **Reparación:** No existe reparación posible en casos de esta gravedad.

Esta escala de acciones es solo una guía. No limita la capacidad del equipo moderador de usar su criterio y juicio en beneficio de nuestra comunidad.

## Alcance

Este Código de Conducta aplica en todos los espacios de la comunidad, y también cuando una persona representa oficialmente a la comunidad en espacios públicos o externos. Algunos ejemplos incluyen usar una dirección de correo oficial, publicar desde una cuenta oficial en redes sociales, o actuar como representante designada o designado en un evento presencial o en línea.

## Atribución

Este Código de Conducta está adaptado del Contributor Covenant, versión 3.0, disponible de manera permanentemente en [https://www.contributor-covenant.org/version/3/0/](https://www.contributor-covenant.org/version/3/0/).

Contributor Covenant es administrado por la Organización para el Código Ético, bajo la licencia CC BY-SA 4.0. Para ver una copia de esta licencia, visita [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/).

Para ver las respuestas a preguntas frecuentes sobre Contributor Covenant, ver [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq). Las traducciones están disponibles en [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations). Recursos adicionales sobre moderación y guías comunitarias pueden encontrarse en [https://www.contributor-covenant.org/resources](https://www.contributor-covenant.org/resources). La escala de acciones fue inspirada por el trabajo del [equipo de código de conducta de Mozilla](https://github.com/mozilla/inclusion).

44 changes: 44 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Cómo contribuir

Esta es una guía de implementación narrativa. Lo que se escribe vive en `input/pagecontent/`, y el orden, los títulos y el menú salen de `sushi-config.yaml`. No hay nada más que tocar para aportar contenido.

Antes de empezar, instale lo que pide el [README](README.md) y ejecute `make tools` una vez para descargar el IG Publisher.

Una buena forma de empezar es [`TODO.md`](TODO.md), que reúne lo que el repositorio tiene pendiente: desde puntos concretos marcados en las páginas, como diagramas por rehacer o una comprobación técnica que falta, hasta capítulos enteros que ya están declarados en `sushi-config.yaml` y esperan a que alguien los escriba. Si toma uno, dígalo en un issue para que nadie trabaje dos veces lo mismo.

Las dudas se preguntan en [Discussions](https://github.com/meddyg/Health-Information-Exchange/discussions), sea sobre la guía o sobre los perfiles en que se apoya. Los issues quedan así para el trabajo concreto, que es lo que se puede tomar, revisar y cerrar.

## Cambios de arquitectura

Todo cambio que toque decisiones en la arquitectura necesita un issue que lo abarque antes de que se escriba una línea. Cuenta como tal cualquier cosa que altere el alcance de la guía, los actores o sus agrupaciones, las transacciones y su reparto entre la infraestructura central y los miembros, o una decisión que ya esté escrita y razonada en el Volumen 1.

La propuesta se sustenta en fuentes, no en preferencias. Sirven los perfiles IHE y las especificaciones FHIR aplicables, los RFC que gobiernen el mecanismo en cuestión y la documentación de los sistemas involucrados, citando siempre la sección exacta y su texto literal, igual que las notas al pie de la guía. Lo que no tenga ese respaldo se sigue discutiendo en el issue y no llega al pull request.

## Ciclo de trabajo

`main` es la rama de producción, la que sirve <https://hix.meddyg.com/fhir/hix/>, y nada llega ahí directamente. Todo cambio se integra a `dev` mediante un pull request, y lo acumulado en `dev` se promueve a `main` cuando se publica una versión.

1. **Nueva rama desde `dev`** con un nombre del estilo `feat/descripcion-corta`, `fix/`, `docs/`, `build/` o `chore/`.
2. **Escriba contra `make preview`**, que recarga al guardar y marca palabra por palabra lo que la página ganó, perdió o cambió respecto a HEAD.
3. **Ejecute `make format`** antes de cada commit; corrige el estilo de las páginas y reporta lo que no puede arreglar solo.
4. **Verifique con `make site`**, que es la build que cuenta y debe terminar sin errores.
5. **Los commits siguen [Conventional Commits](https://www.conventionalcommits.org/es/v1.0.0/)**, escritos en inglés, en minúscula y en imperativo, como `docs: tighten the identity rules in Volume 1`. Los tipos en uso son `feat` para contenido nuevo de la especificación, `fix` para correcciones, `docs` para la redacción y el material de apoyo, `build` y `ci` para el pipeline de publicación, y `chore` para lo demás. El ámbito es opcional de momento mientras se define el criterio para este.
6. **Abra el pull request contra `dev`** describiendo qué cambia en la especificación, no solo qué archivos toca. El pipeline despliega una vista previa del sitio en `https://pr-N.hix-ig.pages.dev/fhir/hix/` para revisar el resultado antes de integrar.

## Convenciones de las páginas

1. **Cada página empieza con prosa, sin encabezado de nivel uno.** El título lo pone `sushi-config.yaml` y el sitio numera las secciones según el orden declarado ahí.
2. **Una página nueva se registra dos veces** en ese archivo, bajo `pages:` para que exista y bajo `menu:` para que se pueda llegar a ella.
3. **Los enlaces internos apuntan al `.html` renderizado**, como `volume-1-concepts.html#seccion`, nunca al archivo `.md`.
4. **Las tablas llevan `{: .table .table-bordered}`** en la línea siguiente, y las anclas explícitas se declaran igual, con `{: #figura-2-1}`.
5. **Se escribe en español (de momento), en frases completas**, con afirmaciones numeradas cuando la idea se presta y las aclaraciones como notas, no entre paréntesis.
6. **Los actores y transacciones que define una especificación conservan su nombre original en inglés**, por ejemplo Document Registry, nunca «Registro documental».
7. **Toda afirmación sobre lo que exige una especificación va con nota al pie** que enlaza la sección exacta y cita su texto literal, como en `volume-1-concepts.md`.

## Diagramas

Las fuentes están en `_diagrams/`. Las de PlantUML se rendarían con `make diagrams` hacia `input/images/`. Las de draw.io no se pueden exportar automáticamente, entonces si o si hay que exportarlas a mano desde la aplicación.

## Conducta y seguridad

Participar aquí implica respetar el [Código de Conducta](CODE_OF_CONDUCT.md). Los hallazgos de seguridad no se reportan en un issue público, sino por la vía que describe la [política de seguridad](SECURITY.md).
Loading
Loading