Guía de Implementación Core de Costa Rica
0.1.0 - ci-build
Guía de Implementación Core de Costa Rica - Versión en desarrollo (v0.1.0): borrador de trabajo de la Iniciativa HL7® Costa Rica, que puede cambiar sin aviso.
| URL oficial: https://hl7.or.cr/fhir/core/StructureDefinition/cr-provenance | Versión: 0.1.0 | ||||
| Standards status: Draft | Nombre computable: CRProvenance | ||||
Historia de un dato que se intercambia fuera de un documento clínico, o de una operación del HIE sobre los datos: quién lo creó, lo corrigió, lo unió o lo transformó, cuándo, en nombre de qué organización y a partir de qué otros datos, con su firma digital.
Usos:
También puede consultar los usos en las estadísticas de IG de FHIR
Descripción de perfiles, diferenciales, instantáneas y sus representaciones.
| Nombre | Marcas | Card. | Tipo | Descripción y restricciones Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Provenance | Procedencia: de dónde viene un dato y qué le pasó Constraints: cr-procedencia-amend, cr-procedencia-merge, cr-procedencia-transform, cr-procedencia-sistema, cr-procedencia-organizacion, cr-procedencia-fechas, cr-procedencia-firmante, cr-procedencia-target-version |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 1..* | Reference(Resource) | Recursos cuya historia describe: la versión concreta (<Recurso>/<id>/_history/<versión>) o el identificador |
![]() ![]() |
SC | 0..1 | dateTime | Cuándo ocurrió la actividad (no posterior al registro) Constraints: cr-documento-fecha-hora |
![]() ![]() |
SΣ | 1..1 | instant | Cuándo se registró la procedencia |
![]() ![]() |
S | 0..* | uri | Mapa (StructureMap) o política aplicada (obligatoria en una transformación) |
![]() ![]() |
S | 1..1 | CodeableConcept | Actividad: originate | amend | merge | transform | receive Vinculación: Actividad de la procedencia (required) |
![]() ![]() |
S | 0..1 | Reference(Paciente) | Paciente de los recursos (obligatorio si son de un paciente) |
![]() ![]() |
S | 0..1 | Reference(Atención) | Atención en la que ocurrió la actividad |
![]() ![]() |
SΣC | 1..* | BackboneElement | Quiénes intervinieron: el sistema y, si actúa uno, el profesional Constraints: prov-1, prov-2, prov-3 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Tipo: author | performer | transmitter | assembler Vinculación: Tipo de agente de la procedencia (required) |
![]() ![]() ![]() |
SΣC | 1..1 | Reference(Rol del profesional | Profesional de salud | Sistema de información | Organización | Paciente) | Quién: el profesional por su rol o el sistema por su registro en el HIE |
![]() ![]() ![]() |
SC | 0..1 | Reference(Organización) | Organización en cuyo nombre actúa |
![]() ![]() |
SΣ | 0..* | BackboneElement | Datos de origen de la actividad |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 1..1 | code | revision (corrección) | source (unión, transformación) Vinculación: ProvenanceEntityRole (required): How an entity was used in an activity. |
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | El dato de origen (la versión concreta, o por su identificador) |
![]() ![]() |
S | 1..* | Signature | Firma digital JAdES de GAUDÍ, detached: cubre la procedencia y las versiones de target |
![]() ![]() ![]() |
SΣ | 1..* | Coding | 1.2.840.10065.1.12.1.1 (firma del autor) | 1.2.840.10065.1.12.1.6 (firma de validación) Vinculación: SignatureTypeCodes (preferred): An indication of the reason that an entity signed the object. |
![]() ![]() ![]() |
SΣ | 1..1 | instant | Momento de la firma |
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Rol del profesional | Profesional de salud | Organización) | Quien firma: el profesional o la organización propietaria del sistema |
![]() ![]() ![]() |
S | 1..1 | code | application/fhir+json (valor fijo) Vinculación: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/fhir+json |
![]() ![]() ![]() |
S | 1..1 | code | application/jose+json (valor fijo): JWS en serialización JSON Vinculación: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/jose+json |
![]() ![]() ![]() |
S | 1..1 | base64Binary | Firma JAdES de GAUDÍ sobre el Bundle de trabajo: el JWS en serialización JSON, en base64 con relleno |
Documentación de este formato | ||||
| Ruta | Estado | Uso | ValueSet | Versión | Fuente |
| Provenance.activity | Base | required | Actividad de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.agent.type | Base | required | Tipo de agente de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.entity.role | Base | required | Provenance Entity Role | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.type | Base | preferred | Signature Type Codes | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.targetFormat | Base | required | Mime Types | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.sigFormat | Base | required | Mime Types | 📍5.0.0 | Estándar FHIR |
| Id | Nivel | Ruta(s) | Descripción | Expression |
| cr-documento-fecha-hora | error | Provenance.occurred[x] | La fecha lleva fecha y hora, no solo la fecha. |
toString().contains('T')
|
| cr-procedencia-amend | error | Provenance | Una corrección (amend) indica la versión anterior (entity con role revision). |
activity.coding.where(code = 'amend').exists() implies entity.where(role = 'revision').exists()
|
| cr-procedencia-fechas | error | Provenance | La fecha de la actividad no es posterior a la fecha de registro. |
occurred.ofType(dateTime).empty() or occurred.ofType(dateTime) <= recorded
|
| cr-procedencia-firmante | error | Provenance | Quien firma es uno de los agentes o la organización en cuyo nombre actúa un agente. |
signature.all(who.reference.empty() or who.reference in (%resource.agent.who.reference | %resource.agent.onBehalfOf.reference))
|
| cr-procedencia-merge | error | Provenance | Una unión (merge) indica el registro unido (entity con role source). |
activity.coding.where(code = 'merge').exists() implies entity.where(role = 'source').exists()
|
| cr-procedencia-organizacion | warning | Provenance | Un agente que es un profesional o un sistema indica la organización en cuyo nombre actúa (onBehalfOf). |
agent.where(who.resolve() is PractitionerRole or who.resolve() is Practitioner or who.resolve() is Device or who.type in ('PractitionerRole' | 'Practitioner' | 'Device') or who.reference.contains('PractitionerRole/') or who.reference.contains('Practitioner/') or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).all(onBehalfOf.exists())
|
| cr-procedencia-sistema | error | Provenance | Al menos un agente es un sistema de información (Device, o su identificador del registro de sistemas del HIE). |
agent.where(who.resolve() is Device or who.type = 'Device' or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).exists()
|
| cr-procedencia-target-version | error | Provenance | Una referencia literal en target nombra la versión del recurso (<Recurso>/<id>/_history/<versión>). |
target.all(reference.empty() or reference.startsWith('#') or reference.contains('/_history/'))
|
| cr-procedencia-transform | error | Provenance | Una transformación (transform) indica el dato de origen (entity con role source) y el mapa aplicado (policy). |
activity.coding.where(code = 'transform').exists() implies (entity.where(role = 'source').exists() and policy.exists())
|
| dom-2 | error | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Provenance | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **TODOS** los elementos | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **TODAS** las extensiones | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| prov-1 | error | Provenance.agent | Who and onBehalfOf cannot be the same |
who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()
|
| prov-2 | error | Provenance.agent | If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner |
who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()
|
| prov-3 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a PractitionerRole within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()
|
Esta estructura se deriva de Provenance .
| Nombre | Marcas | Card. | Tipo | Descripción y restricciones Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Provenance | Procedencia: de dónde viene un dato y qué le pasó Constraints: cr-procedencia-amend, cr-procedencia-merge, cr-procedencia-transform, cr-procedencia-sistema, cr-procedencia-organizacion, cr-procedencia-fechas, cr-procedencia-firmante, cr-procedencia-target-version |
![]() ![]() |
S | 1..* | Reference(Resource) | Recursos cuya historia describe: la versión concreta (<Recurso>/<id>/_history/<versión>) o el identificador |
![]() ![]() |
SC | 0..1 | dateTime | Cuándo ocurrió la actividad (no posterior al registro) Constraints: cr-documento-fecha-hora |
![]() ![]() |
S | 1..1 | instant | Cuándo se registró la procedencia |
![]() ![]() |
S | 0..* | uri | Mapa (StructureMap) o política aplicada (obligatoria en una transformación) |
![]() ![]() |
S | 1..1 | CodeableConcept | Actividad: originate | amend | merge | transform | receive Vinculación: Actividad de la procedencia (required) |
![]() ![]() |
S | 0..1 | Reference(Paciente) | Paciente de los recursos (obligatorio si son de un paciente) |
![]() ![]() |
S | 0..1 | Reference(Atención) | Atención en la que ocurrió la actividad |
![]() ![]() |
S | 1..* | BackboneElement | Quiénes intervinieron: el sistema y, si actúa uno, el profesional |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Tipo: author | performer | transmitter | assembler Vinculación: Tipo de agente de la procedencia (required) |
![]() ![]() ![]() |
S | 1..1 | Reference(Rol del profesional | Profesional de salud | Sistema de información | Organización | Paciente) | Quién: el profesional por su rol o el sistema por su registro en el HIE |
![]() ![]() ![]() |
S | 0..1 | Reference(Organización) | Organización en cuyo nombre actúa |
![]() ![]() |
S | 0..* | BackboneElement | Datos de origen de la actividad |
![]() ![]() ![]() |
S | 1..1 | code | revision (corrección) | source (unión, transformación) |
![]() ![]() ![]() |
S | 1..1 | Reference(Resource) | El dato de origen (la versión concreta, o por su identificador) |
![]() ![]() |
S | 1..* | Signature | Firma digital JAdES de GAUDÍ, detached: cubre la procedencia y las versiones de target |
![]() ![]() ![]() |
S | 1..* | Coding | 1.2.840.10065.1.12.1.1 (firma del autor) | 1.2.840.10065.1.12.1.6 (firma de validación) |
![]() ![]() ![]() |
S | 1..1 | instant | Momento de la firma |
![]() ![]() ![]() |
S | 1..1 | Reference(Rol del profesional | Profesional de salud | Organización) | Quien firma: el profesional o la organización propietaria del sistema |
![]() ![]() ![]() |
S | 1..1 | code | application/fhir+json (valor fijo) Required Pattern: application/fhir+json |
![]() ![]() ![]() |
S | 1..1 | code | application/jose+json (valor fijo): JWS en serialización JSON Required Pattern: application/jose+json |
![]() ![]() ![]() |
S | 1..1 | base64Binary | Firma JAdES de GAUDÍ sobre el Bundle de trabajo: el JWS en serialización JSON, en base64 con relleno |
Documentación de este formato | ||||
| Ruta | Estado | Uso | ValueSet | Versión | Fuente |
| Provenance.activity | Base | required | Actividad de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.agent.type | Base | required | Tipo de agente de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Id | Nivel | Ruta(s) | Descripción | Expression |
| cr-documento-fecha-hora | error | Provenance.occurred[x] | La fecha lleva fecha y hora, no solo la fecha. |
toString().contains('T')
|
| cr-procedencia-amend | error | Provenance | Una corrección (amend) indica la versión anterior (entity con role revision). |
activity.coding.where(code = 'amend').exists() implies entity.where(role = 'revision').exists()
|
| cr-procedencia-fechas | error | Provenance | La fecha de la actividad no es posterior a la fecha de registro. |
occurred.ofType(dateTime).empty() or occurred.ofType(dateTime) <= recorded
|
| cr-procedencia-firmante | error | Provenance | Quien firma es uno de los agentes o la organización en cuyo nombre actúa un agente. |
signature.all(who.reference.empty() or who.reference in (%resource.agent.who.reference | %resource.agent.onBehalfOf.reference))
|
| cr-procedencia-merge | error | Provenance | Una unión (merge) indica el registro unido (entity con role source). |
activity.coding.where(code = 'merge').exists() implies entity.where(role = 'source').exists()
|
| cr-procedencia-organizacion | warning | Provenance | Un agente que es un profesional o un sistema indica la organización en cuyo nombre actúa (onBehalfOf). |
agent.where(who.resolve() is PractitionerRole or who.resolve() is Practitioner or who.resolve() is Device or who.type in ('PractitionerRole' | 'Practitioner' | 'Device') or who.reference.contains('PractitionerRole/') or who.reference.contains('Practitioner/') or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).all(onBehalfOf.exists())
|
| cr-procedencia-sistema | error | Provenance | Al menos un agente es un sistema de información (Device, o su identificador del registro de sistemas del HIE). |
agent.where(who.resolve() is Device or who.type = 'Device' or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).exists()
|
| cr-procedencia-target-version | error | Provenance | Una referencia literal en target nombra la versión del recurso (<Recurso>/<id>/_history/<versión>). |
target.all(reference.empty() or reference.startsWith('#') or reference.contains('/_history/'))
|
| cr-procedencia-transform | error | Provenance | Una transformación (transform) indica el dato de origen (entity con role source) y el mapa aplicado (policy). |
activity.coding.where(code = 'transform').exists() implies (entity.where(role = 'source').exists() and policy.exists())
|
| Nombre | Marcas | Card. | Tipo | Descripción y restricciones Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Provenance | Procedencia: de dónde viene un dato y qué le pasó Constraints: cr-procedencia-amend, cr-procedencia-merge, cr-procedencia-transform, cr-procedencia-sistema, cr-procedencia-organizacion, cr-procedencia-fechas, cr-procedencia-firmante, cr-procedencia-target-version | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Vinculación: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
SΣ | 1..* | Reference(Resource) | Recursos cuya historia describe: la versión concreta (<Recurso>/<id>/_history/<versión>) o el identificador | ||||
![]() ![]() |
SC | 0..1 | dateTime | Cuándo ocurrió la actividad (no posterior al registro) Constraints: cr-documento-fecha-hora | ||||
![]() ![]() |
SΣ | 1..1 | instant | Cuándo se registró la procedencia | ||||
![]() ![]() |
S | 0..* | uri | Mapa (StructureMap) o política aplicada (obligatoria en una transformación) | ||||
![]() ![]() |
0..1 | Reference(Location) | Where the activity occurred, if relevant | |||||
![]() ![]() |
0..* | CodeableReference() | Authorization (purposeOfUse) related to the event Vinculación: PurposeOfUse (example): The authorized purposeOfUse for the activity. | |||||
![]() ![]() |
S | 1..1 | CodeableConcept | Actividad: originate | amend | merge | transform | receive Vinculación: Actividad de la procedencia (required) | ||||
![]() ![]() |
0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest | Task) | Workflow authorization within which this event occurred | |||||
![]() ![]() |
S | 0..1 | Reference(Paciente) | Paciente de los recursos (obligatorio si son de un paciente) | ||||
![]() ![]() |
S | 0..1 | Reference(Atención) | Atención en la que ocurrió la actividad | ||||
![]() ![]() |
SΣC | 1..* | BackboneElement | Quiénes intervinieron: el sistema y, si actúa uno, el profesional Constraints: prov-1, prov-2, prov-3 | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Tipo: author | performer | transmitter | assembler Vinculación: Tipo de agente de la procedencia (required) | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | What the agents role was Vinculación: SecurityRoleType (example): The role that a provenance agent played with respect to the activity. | |||||
![]() ![]() ![]() |
SΣC | 1..1 | Reference(Rol del profesional | Profesional de salud | Sistema de información | Organización | Paciente) | Quién: el profesional por su rol o el sistema por su registro en el HIE | ||||
![]() ![]() ![]() |
SC | 0..1 | Reference(Organización) | Organización en cuyo nombre actúa | ||||
![]() ![]() |
SΣ | 0..* | BackboneElement | Datos de origen de la actividad | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣ | 1..1 | code | revision (corrección) | source (unión, transformación) Vinculación: ProvenanceEntityRole (required): How an entity was used in an activity. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | El dato de origen (la versión concreta, o por su identificador) | ||||
![]() ![]() ![]() |
0..* | Vea agent (Provenance) | Entity is attributed to this agent | |||||
![]() ![]() |
S | 1..* | Signature | Firma digital JAdES de GAUDÍ, detached: cubre la procedencia y las versiones de target | ||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Sin orden, Abierto by value:url | |||||
![]() ![]() ![]() |
SΣ | 1..* | Coding | 1.2.840.10065.1.12.1.1 (firma del autor) | 1.2.840.10065.1.12.1.6 (firma de validación) Vinculación: SignatureTypeCodes (preferred): An indication of the reason that an entity signed the object. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | instant | Momento de la firma | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Rol del profesional | Profesional de salud | Organización) | Quien firma: el profesional o la organización propietaria del sistema | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | The party represented | ||||
![]() ![]() ![]() |
S | 1..1 | code | application/fhir+json (valor fijo) Vinculación: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/fhir+json | ||||
![]() ![]() ![]() |
S | 1..1 | code | application/jose+json (valor fijo): JWS en serialización JSON Vinculación: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/jose+json | ||||
![]() ![]() ![]() |
S | 1..1 | base64Binary | Firma JAdES de GAUDÍ sobre el Bundle de trabajo: el JWS en serialización JSON, en base64 con relleno | ||||
Documentación de este formato | ||||||||
| Ruta | Estado | Uso | ValueSet | Versión | Fuente |
| Provenance.language | Base | required | All Languages | 📍5.0.0 | Estándar FHIR |
| Provenance.authorization | Base | example | PurposeOfUse | 📦3.1.0 | THO v7.4 |
| Provenance.activity | Base | required | Actividad de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.agent.type | Base | required | Tipo de agente de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.agent.role | Base | example | Security Role Type | 📍5.0.0 | Estándar FHIR |
| Provenance.entity.role | Base | required | Provenance Entity Role | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.type | Base | preferred | Signature Type Codes | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.targetFormat | Base | required | Mime Types | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.sigFormat | Base | required | Mime Types | 📍5.0.0 | Estándar FHIR |
| Id | Nivel | Ruta(s) | Descripción | Expression |
| cr-documento-fecha-hora | error | Provenance.occurred[x] | La fecha lleva fecha y hora, no solo la fecha. |
toString().contains('T')
|
| cr-procedencia-amend | error | Provenance | Una corrección (amend) indica la versión anterior (entity con role revision). |
activity.coding.where(code = 'amend').exists() implies entity.where(role = 'revision').exists()
|
| cr-procedencia-fechas | error | Provenance | La fecha de la actividad no es posterior a la fecha de registro. |
occurred.ofType(dateTime).empty() or occurred.ofType(dateTime) <= recorded
|
| cr-procedencia-firmante | error | Provenance | Quien firma es uno de los agentes o la organización en cuyo nombre actúa un agente. |
signature.all(who.reference.empty() or who.reference in (%resource.agent.who.reference | %resource.agent.onBehalfOf.reference))
|
| cr-procedencia-merge | error | Provenance | Una unión (merge) indica el registro unido (entity con role source). |
activity.coding.where(code = 'merge').exists() implies entity.where(role = 'source').exists()
|
| cr-procedencia-organizacion | warning | Provenance | Un agente que es un profesional o un sistema indica la organización en cuyo nombre actúa (onBehalfOf). |
agent.where(who.resolve() is PractitionerRole or who.resolve() is Practitioner or who.resolve() is Device or who.type in ('PractitionerRole' | 'Practitioner' | 'Device') or who.reference.contains('PractitionerRole/') or who.reference.contains('Practitioner/') or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).all(onBehalfOf.exists())
|
| cr-procedencia-sistema | error | Provenance | Al menos un agente es un sistema de información (Device, o su identificador del registro de sistemas del HIE). |
agent.where(who.resolve() is Device or who.type = 'Device' or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).exists()
|
| cr-procedencia-target-version | error | Provenance | Una referencia literal en target nombra la versión del recurso (<Recurso>/<id>/_history/<versión>). |
target.all(reference.empty() or reference.startsWith('#') or reference.contains('/_history/'))
|
| cr-procedencia-transform | error | Provenance | Una transformación (transform) indica el dato de origen (entity con role source) y el mapa aplicado (policy). |
activity.coding.where(code = 'transform').exists() implies (entity.where(role = 'source').exists() and policy.exists())
|
| dom-2 | error | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Provenance | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **TODOS** los elementos | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **TODAS** las extensiones | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| prov-1 | error | Provenance.agent | Who and onBehalfOf cannot be the same |
who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()
|
| prov-2 | error | Provenance.agent | If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner |
who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()
|
| prov-3 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a PractitionerRole within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()
|
Esta estructura se deriva de Provenance .
Resumen
Obligatorios: 10 elementos
Must-Support: 21 elementos
Estructuras
Esta estructura hace referencia a estas otras estructuras:
Vista de elementos clave
| Nombre | Marcas | Card. | Tipo | Descripción y restricciones Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Provenance | Procedencia: de dónde viene un dato y qué le pasó Constraints: cr-procedencia-amend, cr-procedencia-merge, cr-procedencia-transform, cr-procedencia-sistema, cr-procedencia-organizacion, cr-procedencia-fechas, cr-procedencia-firmante, cr-procedencia-target-version |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 1..* | Reference(Resource) | Recursos cuya historia describe: la versión concreta (<Recurso>/<id>/_history/<versión>) o el identificador |
![]() ![]() |
SC | 0..1 | dateTime | Cuándo ocurrió la actividad (no posterior al registro) Constraints: cr-documento-fecha-hora |
![]() ![]() |
SΣ | 1..1 | instant | Cuándo se registró la procedencia |
![]() ![]() |
S | 0..* | uri | Mapa (StructureMap) o política aplicada (obligatoria en una transformación) |
![]() ![]() |
S | 1..1 | CodeableConcept | Actividad: originate | amend | merge | transform | receive Vinculación: Actividad de la procedencia (required) |
![]() ![]() |
S | 0..1 | Reference(Paciente) | Paciente de los recursos (obligatorio si son de un paciente) |
![]() ![]() |
S | 0..1 | Reference(Atención) | Atención en la que ocurrió la actividad |
![]() ![]() |
SΣC | 1..* | BackboneElement | Quiénes intervinieron: el sistema y, si actúa uno, el profesional Constraints: prov-1, prov-2, prov-3 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Tipo: author | performer | transmitter | assembler Vinculación: Tipo de agente de la procedencia (required) |
![]() ![]() ![]() |
SΣC | 1..1 | Reference(Rol del profesional | Profesional de salud | Sistema de información | Organización | Paciente) | Quién: el profesional por su rol o el sistema por su registro en el HIE |
![]() ![]() ![]() |
SC | 0..1 | Reference(Organización) | Organización en cuyo nombre actúa |
![]() ![]() |
SΣ | 0..* | BackboneElement | Datos de origen de la actividad |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 1..1 | code | revision (corrección) | source (unión, transformación) Vinculación: ProvenanceEntityRole (required): How an entity was used in an activity. |
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | El dato de origen (la versión concreta, o por su identificador) |
![]() ![]() |
S | 1..* | Signature | Firma digital JAdES de GAUDÍ, detached: cubre la procedencia y las versiones de target |
![]() ![]() ![]() |
SΣ | 1..* | Coding | 1.2.840.10065.1.12.1.1 (firma del autor) | 1.2.840.10065.1.12.1.6 (firma de validación) Vinculación: SignatureTypeCodes (preferred): An indication of the reason that an entity signed the object. |
![]() ![]() ![]() |
SΣ | 1..1 | instant | Momento de la firma |
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Rol del profesional | Profesional de salud | Organización) | Quien firma: el profesional o la organización propietaria del sistema |
![]() ![]() ![]() |
S | 1..1 | code | application/fhir+json (valor fijo) Vinculación: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/fhir+json |
![]() ![]() ![]() |
S | 1..1 | code | application/jose+json (valor fijo): JWS en serialización JSON Vinculación: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/jose+json |
![]() ![]() ![]() |
S | 1..1 | base64Binary | Firma JAdES de GAUDÍ sobre el Bundle de trabajo: el JWS en serialización JSON, en base64 con relleno |
Documentación de este formato | ||||
| Ruta | Estado | Uso | ValueSet | Versión | Fuente |
| Provenance.activity | Base | required | Actividad de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.agent.type | Base | required | Tipo de agente de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.entity.role | Base | required | Provenance Entity Role | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.type | Base | preferred | Signature Type Codes | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.targetFormat | Base | required | Mime Types | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.sigFormat | Base | required | Mime Types | 📍5.0.0 | Estándar FHIR |
| Id | Nivel | Ruta(s) | Descripción | Expression |
| cr-documento-fecha-hora | error | Provenance.occurred[x] | La fecha lleva fecha y hora, no solo la fecha. |
toString().contains('T')
|
| cr-procedencia-amend | error | Provenance | Una corrección (amend) indica la versión anterior (entity con role revision). |
activity.coding.where(code = 'amend').exists() implies entity.where(role = 'revision').exists()
|
| cr-procedencia-fechas | error | Provenance | La fecha de la actividad no es posterior a la fecha de registro. |
occurred.ofType(dateTime).empty() or occurred.ofType(dateTime) <= recorded
|
| cr-procedencia-firmante | error | Provenance | Quien firma es uno de los agentes o la organización en cuyo nombre actúa un agente. |
signature.all(who.reference.empty() or who.reference in (%resource.agent.who.reference | %resource.agent.onBehalfOf.reference))
|
| cr-procedencia-merge | error | Provenance | Una unión (merge) indica el registro unido (entity con role source). |
activity.coding.where(code = 'merge').exists() implies entity.where(role = 'source').exists()
|
| cr-procedencia-organizacion | warning | Provenance | Un agente que es un profesional o un sistema indica la organización en cuyo nombre actúa (onBehalfOf). |
agent.where(who.resolve() is PractitionerRole or who.resolve() is Practitioner or who.resolve() is Device or who.type in ('PractitionerRole' | 'Practitioner' | 'Device') or who.reference.contains('PractitionerRole/') or who.reference.contains('Practitioner/') or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).all(onBehalfOf.exists())
|
| cr-procedencia-sistema | error | Provenance | Al menos un agente es un sistema de información (Device, o su identificador del registro de sistemas del HIE). |
agent.where(who.resolve() is Device or who.type = 'Device' or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).exists()
|
| cr-procedencia-target-version | error | Provenance | Una referencia literal en target nombra la versión del recurso (<Recurso>/<id>/_history/<versión>). |
target.all(reference.empty() or reference.startsWith('#') or reference.contains('/_history/'))
|
| cr-procedencia-transform | error | Provenance | Una transformación (transform) indica el dato de origen (entity con role source) y el mapa aplicado (policy). |
activity.coding.where(code = 'transform').exists() implies (entity.where(role = 'source').exists() and policy.exists())
|
| dom-2 | error | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Provenance | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **TODOS** los elementos | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **TODAS** las extensiones | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| prov-1 | error | Provenance.agent | Who and onBehalfOf cannot be the same |
who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()
|
| prov-2 | error | Provenance.agent | If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner |
who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()
|
| prov-3 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a PractitionerRole within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()
|
Vista diferencial
Esta estructura se deriva de Provenance .
| Nombre | Marcas | Card. | Tipo | Descripción y restricciones Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Provenance | Procedencia: de dónde viene un dato y qué le pasó Constraints: cr-procedencia-amend, cr-procedencia-merge, cr-procedencia-transform, cr-procedencia-sistema, cr-procedencia-organizacion, cr-procedencia-fechas, cr-procedencia-firmante, cr-procedencia-target-version |
![]() ![]() |
S | 1..* | Reference(Resource) | Recursos cuya historia describe: la versión concreta (<Recurso>/<id>/_history/<versión>) o el identificador |
![]() ![]() |
SC | 0..1 | dateTime | Cuándo ocurrió la actividad (no posterior al registro) Constraints: cr-documento-fecha-hora |
![]() ![]() |
S | 1..1 | instant | Cuándo se registró la procedencia |
![]() ![]() |
S | 0..* | uri | Mapa (StructureMap) o política aplicada (obligatoria en una transformación) |
![]() ![]() |
S | 1..1 | CodeableConcept | Actividad: originate | amend | merge | transform | receive Vinculación: Actividad de la procedencia (required) |
![]() ![]() |
S | 0..1 | Reference(Paciente) | Paciente de los recursos (obligatorio si son de un paciente) |
![]() ![]() |
S | 0..1 | Reference(Atención) | Atención en la que ocurrió la actividad |
![]() ![]() |
S | 1..* | BackboneElement | Quiénes intervinieron: el sistema y, si actúa uno, el profesional |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Tipo: author | performer | transmitter | assembler Vinculación: Tipo de agente de la procedencia (required) |
![]() ![]() ![]() |
S | 1..1 | Reference(Rol del profesional | Profesional de salud | Sistema de información | Organización | Paciente) | Quién: el profesional por su rol o el sistema por su registro en el HIE |
![]() ![]() ![]() |
S | 0..1 | Reference(Organización) | Organización en cuyo nombre actúa |
![]() ![]() |
S | 0..* | BackboneElement | Datos de origen de la actividad |
![]() ![]() ![]() |
S | 1..1 | code | revision (corrección) | source (unión, transformación) |
![]() ![]() ![]() |
S | 1..1 | Reference(Resource) | El dato de origen (la versión concreta, o por su identificador) |
![]() ![]() |
S | 1..* | Signature | Firma digital JAdES de GAUDÍ, detached: cubre la procedencia y las versiones de target |
![]() ![]() ![]() |
S | 1..* | Coding | 1.2.840.10065.1.12.1.1 (firma del autor) | 1.2.840.10065.1.12.1.6 (firma de validación) |
![]() ![]() ![]() |
S | 1..1 | instant | Momento de la firma |
![]() ![]() ![]() |
S | 1..1 | Reference(Rol del profesional | Profesional de salud | Organización) | Quien firma: el profesional o la organización propietaria del sistema |
![]() ![]() ![]() |
S | 1..1 | code | application/fhir+json (valor fijo) Required Pattern: application/fhir+json |
![]() ![]() ![]() |
S | 1..1 | code | application/jose+json (valor fijo): JWS en serialización JSON Required Pattern: application/jose+json |
![]() ![]() ![]() |
S | 1..1 | base64Binary | Firma JAdES de GAUDÍ sobre el Bundle de trabajo: el JWS en serialización JSON, en base64 con relleno |
Documentación de este formato | ||||
| Ruta | Estado | Uso | ValueSet | Versión | Fuente |
| Provenance.activity | Base | required | Actividad de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.agent.type | Base | required | Tipo de agente de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Id | Nivel | Ruta(s) | Descripción | Expression |
| cr-documento-fecha-hora | error | Provenance.occurred[x] | La fecha lleva fecha y hora, no solo la fecha. |
toString().contains('T')
|
| cr-procedencia-amend | error | Provenance | Una corrección (amend) indica la versión anterior (entity con role revision). |
activity.coding.where(code = 'amend').exists() implies entity.where(role = 'revision').exists()
|
| cr-procedencia-fechas | error | Provenance | La fecha de la actividad no es posterior a la fecha de registro. |
occurred.ofType(dateTime).empty() or occurred.ofType(dateTime) <= recorded
|
| cr-procedencia-firmante | error | Provenance | Quien firma es uno de los agentes o la organización en cuyo nombre actúa un agente. |
signature.all(who.reference.empty() or who.reference in (%resource.agent.who.reference | %resource.agent.onBehalfOf.reference))
|
| cr-procedencia-merge | error | Provenance | Una unión (merge) indica el registro unido (entity con role source). |
activity.coding.where(code = 'merge').exists() implies entity.where(role = 'source').exists()
|
| cr-procedencia-organizacion | warning | Provenance | Un agente que es un profesional o un sistema indica la organización en cuyo nombre actúa (onBehalfOf). |
agent.where(who.resolve() is PractitionerRole or who.resolve() is Practitioner or who.resolve() is Device or who.type in ('PractitionerRole' | 'Practitioner' | 'Device') or who.reference.contains('PractitionerRole/') or who.reference.contains('Practitioner/') or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).all(onBehalfOf.exists())
|
| cr-procedencia-sistema | error | Provenance | Al menos un agente es un sistema de información (Device, o su identificador del registro de sistemas del HIE). |
agent.where(who.resolve() is Device or who.type = 'Device' or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).exists()
|
| cr-procedencia-target-version | error | Provenance | Una referencia literal en target nombra la versión del recurso (<Recurso>/<id>/_history/<versión>). |
target.all(reference.empty() or reference.startsWith('#') or reference.contains('/_history/'))
|
| cr-procedencia-transform | error | Provenance | Una transformación (transform) indica el dato de origen (entity con role source) y el mapa aplicado (policy). |
activity.coding.where(code = 'transform').exists() implies (entity.where(role = 'source').exists() and policy.exists())
|
Vista instantáneaView
| Nombre | Marcas | Card. | Tipo | Descripción y restricciones Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Provenance | Procedencia: de dónde viene un dato y qué le pasó Constraints: cr-procedencia-amend, cr-procedencia-merge, cr-procedencia-transform, cr-procedencia-sistema, cr-procedencia-organizacion, cr-procedencia-fechas, cr-procedencia-firmante, cr-procedencia-target-version | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Vinculación: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
SΣ | 1..* | Reference(Resource) | Recursos cuya historia describe: la versión concreta (<Recurso>/<id>/_history/<versión>) o el identificador | ||||
![]() ![]() |
SC | 0..1 | dateTime | Cuándo ocurrió la actividad (no posterior al registro) Constraints: cr-documento-fecha-hora | ||||
![]() ![]() |
SΣ | 1..1 | instant | Cuándo se registró la procedencia | ||||
![]() ![]() |
S | 0..* | uri | Mapa (StructureMap) o política aplicada (obligatoria en una transformación) | ||||
![]() ![]() |
0..1 | Reference(Location) | Where the activity occurred, if relevant | |||||
![]() ![]() |
0..* | CodeableReference() | Authorization (purposeOfUse) related to the event Vinculación: PurposeOfUse (example): The authorized purposeOfUse for the activity. | |||||
![]() ![]() |
S | 1..1 | CodeableConcept | Actividad: originate | amend | merge | transform | receive Vinculación: Actividad de la procedencia (required) | ||||
![]() ![]() |
0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest | Task) | Workflow authorization within which this event occurred | |||||
![]() ![]() |
S | 0..1 | Reference(Paciente) | Paciente de los recursos (obligatorio si son de un paciente) | ||||
![]() ![]() |
S | 0..1 | Reference(Atención) | Atención en la que ocurrió la actividad | ||||
![]() ![]() |
SΣC | 1..* | BackboneElement | Quiénes intervinieron: el sistema y, si actúa uno, el profesional Constraints: prov-1, prov-2, prov-3 | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Tipo: author | performer | transmitter | assembler Vinculación: Tipo de agente de la procedencia (required) | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | What the agents role was Vinculación: SecurityRoleType (example): The role that a provenance agent played with respect to the activity. | |||||
![]() ![]() ![]() |
SΣC | 1..1 | Reference(Rol del profesional | Profesional de salud | Sistema de información | Organización | Paciente) | Quién: el profesional por su rol o el sistema por su registro en el HIE | ||||
![]() ![]() ![]() |
SC | 0..1 | Reference(Organización) | Organización en cuyo nombre actúa | ||||
![]() ![]() |
SΣ | 0..* | BackboneElement | Datos de origen de la actividad | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣ | 1..1 | code | revision (corrección) | source (unión, transformación) Vinculación: ProvenanceEntityRole (required): How an entity was used in an activity. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | El dato de origen (la versión concreta, o por su identificador) | ||||
![]() ![]() ![]() |
0..* | Vea agent (Provenance) | Entity is attributed to this agent | |||||
![]() ![]() |
S | 1..* | Signature | Firma digital JAdES de GAUDÍ, detached: cubre la procedencia y las versiones de target | ||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Sin orden, Abierto by value:url | |||||
![]() ![]() ![]() |
SΣ | 1..* | Coding | 1.2.840.10065.1.12.1.1 (firma del autor) | 1.2.840.10065.1.12.1.6 (firma de validación) Vinculación: SignatureTypeCodes (preferred): An indication of the reason that an entity signed the object. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | instant | Momento de la firma | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(Rol del profesional | Profesional de salud | Organización) | Quien firma: el profesional o la organización propietaria del sistema | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | The party represented | ||||
![]() ![]() ![]() |
S | 1..1 | code | application/fhir+json (valor fijo) Vinculación: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/fhir+json | ||||
![]() ![]() ![]() |
S | 1..1 | code | application/jose+json (valor fijo): JWS en serialización JSON Vinculación: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/jose+json | ||||
![]() ![]() ![]() |
S | 1..1 | base64Binary | Firma JAdES de GAUDÍ sobre el Bundle de trabajo: el JWS en serialización JSON, en base64 con relleno | ||||
Documentación de este formato | ||||||||
| Ruta | Estado | Uso | ValueSet | Versión | Fuente |
| Provenance.language | Base | required | All Languages | 📍5.0.0 | Estándar FHIR |
| Provenance.authorization | Base | example | PurposeOfUse | 📦3.1.0 | THO v7.4 |
| Provenance.activity | Base | required | Actividad de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.agent.type | Base | required | Tipo de agente de la procedencia | 📦0.1.0 | Guía de Implementación de Terminología de Costa Rica vnull |
| Provenance.agent.role | Base | example | Security Role Type | 📍5.0.0 | Estándar FHIR |
| Provenance.entity.role | Base | required | Provenance Entity Role | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.type | Base | preferred | Signature Type Codes | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.targetFormat | Base | required | Mime Types | 📍5.0.0 | Estándar FHIR |
| Provenance.signature.sigFormat | Base | required | Mime Types | 📍5.0.0 | Estándar FHIR |
| Id | Nivel | Ruta(s) | Descripción | Expression |
| cr-documento-fecha-hora | error | Provenance.occurred[x] | La fecha lleva fecha y hora, no solo la fecha. |
toString().contains('T')
|
| cr-procedencia-amend | error | Provenance | Una corrección (amend) indica la versión anterior (entity con role revision). |
activity.coding.where(code = 'amend').exists() implies entity.where(role = 'revision').exists()
|
| cr-procedencia-fechas | error | Provenance | La fecha de la actividad no es posterior a la fecha de registro. |
occurred.ofType(dateTime).empty() or occurred.ofType(dateTime) <= recorded
|
| cr-procedencia-firmante | error | Provenance | Quien firma es uno de los agentes o la organización en cuyo nombre actúa un agente. |
signature.all(who.reference.empty() or who.reference in (%resource.agent.who.reference | %resource.agent.onBehalfOf.reference))
|
| cr-procedencia-merge | error | Provenance | Una unión (merge) indica el registro unido (entity con role source). |
activity.coding.where(code = 'merge').exists() implies entity.where(role = 'source').exists()
|
| cr-procedencia-organizacion | warning | Provenance | Un agente que es un profesional o un sistema indica la organización en cuyo nombre actúa (onBehalfOf). |
agent.where(who.resolve() is PractitionerRole or who.resolve() is Practitioner or who.resolve() is Device or who.type in ('PractitionerRole' | 'Practitioner' | 'Device') or who.reference.contains('PractitionerRole/') or who.reference.contains('Practitioner/') or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).all(onBehalfOf.exists())
|
| cr-procedencia-sistema | error | Provenance | Al menos un agente es un sistema de información (Device, o su identificador del registro de sistemas del HIE). |
agent.where(who.resolve() is Device or who.type = 'Device' or who.reference.contains('Device/') or who.identifier.system.startsWith('https://hl7.or.cr/fhir/sid/sistema/')).exists()
|
| cr-procedencia-target-version | error | Provenance | Una referencia literal en target nombra la versión del recurso (<Recurso>/<id>/_history/<versión>). |
target.all(reference.empty() or reference.startsWith('#') or reference.contains('/_history/'))
|
| cr-procedencia-transform | error | Provenance | Una transformación (transform) indica el dato de origen (entity con role source) y el mapa aplicado (policy). |
activity.coding.where(code = 'transform').exists() implies (entity.where(role = 'source').exists() and policy.exists())
|
| dom-2 | error | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Provenance | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **TODOS** los elementos | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **TODAS** las extensiones | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| prov-1 | error | Provenance.agent | Who and onBehalfOf cannot be the same |
who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()
|
| prov-2 | error | Provenance.agent | If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner |
who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()
|
| prov-3 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a PractitionerRole within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()
|
Esta estructura se deriva de Provenance .
Resumen
Obligatorios: 10 elementos
Must-Support: 21 elementos
Estructuras
Esta estructura hace referencia a estas otras estructuras:
Otras representaciones de perfil: CSV, Excel, Schematron
Acompaña a los datos que se intercambian fuera de un documento, por ejemplo una observación suelta, y registra las operaciones del HIE: en el registro de pacientes, cada unión de registros del MPI Nacional lleva una procedencia. Un documento clínico no la necesita: su encabezado ya lo registra, y su firma va en la firma del documento.
Ver también Servicios del HIE.