HL7中国FHIR Connectathon测试实施指南
V20230304 - release
本指南适用于HL7中国的FHIR Connectathon测试。
Defining URL: | http://hl7.org.cn/fhir/StructureDefinition/profile-sars-cov-2-nucleic-acid-test |
Version: | V20230304 |
Name: | DocumentSarsCov2NucleicAcidTest |
Title: | 新型冠状病毒核酸检测报告共享文档本地化定义 |
Status: | Active as of 2023-03-04T16:13:14+08:00 |
Definition: | 新型冠状病毒核酸检测报告共享文档本地化定义。 |
Publisher: | HL7中国 |
Source Resource: | XML / JSON / Turtle |
本定义的正式URL为:
http://hl7.org.cn/fhir/StructureDefinition/profile-sars-cov-2-nucleic-acid-test
核酸检测项目编码有两种形式:
形式的不同,决定了核酸检测结果Observation的value取值类型,在本次测评中使用Presence形式,value取值类型为CodeableConcept。
核酸样本类型有很多种,包括:鼻咽拭子、咽拭子、痰标本、唾液标本、血清标本、血浆标本、全血样本、静脉血标本等。
国内一般采用实时荧光RT-PCR方法检测新冠病毒核酸。
国内检测机构所选用的新冠病毒核酸检测试剂主要针对新冠病毒基因组中开放读码框1ab(open reading frame 1ab,ORF1ab)和核衣壳蛋白(nucleocapsid protein,N)基因。
实验室确认阳性病例需满足以下两个条件中的一个:
本定义的其它表示法: Schematron
Path | Conformance | ValueSet / Code |
Composition.language | preferred | CommonLanguages Max Binding: AllLanguages |
Composition.status | required | CompositionStatus |
Composition.type | required | Pattern: P001("新型冠状病毒核酸检测报告") |
Composition.category | required | Pattern: PHR("个人健康档案共享文档") |
Composition.confidentiality | required | v3.ConfidentialityClassification |
Composition.attester.mode | required | CompositionAttestationMode |
Composition.relatesTo.code | required | DocumentRelationshipType |
Composition.event.code | example | ActCode |
Composition.section.code | required | DocSectionCodes |
Composition.section.mode | required | ListMode |
Composition.section.orderedBy | preferred | ListOrderCodes |
Composition.section.emptyReason | preferred | ListEmptyReasons |
Composition.section:LabResult.code | example | Pattern: LOINC code 30954-2("检验结果") |
Composition.section:LabResult.mode | required | ListMode |
Composition.section:LabResult.orderedBy | preferred | ListOrderCodes |
Composition.section:LabResult.emptyReason | preferred | ListEmptyReasons |
Composition.section:Speciman.code | example | Pattern: LOINC code 68992-7("标本信息") |
Composition.section:Speciman.mode | required | ListMode |
Composition.section:Speciman.orderedBy | preferred | ListOrderCodes |
Composition.section:Speciman.emptyReason | preferred | ListEmptyReasons |
Id | Path | Details | Requirements |
dom-2 | Composition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | Composition | 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | Composition | 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 | Composition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Composition | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | Composition.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.date | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.author | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.title | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.confidentiality | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.attester | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.attester.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.attester.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.attester.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.attester.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.attester.mode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.attester.time | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.attester.party | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.custodian | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.relatesTo | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.relatesTo.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.relatesTo.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.relatesTo.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.relatesTo.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.relatesTo.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.relatesTo.target[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.event | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.event.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.event.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.event.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.event.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.event.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.event.period | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.event.detail | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
cmp-1 | Composition.section | A section must contain at least one of text, entries, or sub-sections : text.exists() or entry.exists() or section.exists() | |
cmp-2 | Composition.section | A section can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
ele-1 | Composition.section | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.section.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.section.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.section.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.section.title | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.author | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.focus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.mode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.orderedBy | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.entry | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.emptyReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section.section | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
cmp-1 | Composition.section:LabResult | A section must contain at least one of text, entries, or sub-sections : text.exists() or entry.exists() or section.exists() | |
cmp-2 | Composition.section:LabResult | A section can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
ele-1 | Composition.section:LabResult | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.section:LabResult.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.section:LabResult.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.section:LabResult.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.section:LabResult.title | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.author | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.focus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.mode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.orderedBy | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.entry | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.emptyReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:LabResult.section | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
cmp-1 | Composition.section:Speciman | A section must contain at least one of text, entries, or sub-sections : text.exists() or entry.exists() or section.exists() | |
cmp-2 | Composition.section:Speciman | A section can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
ele-1 | Composition.section:Speciman | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.section:Speciman.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.section:Speciman.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Composition.section:Speciman.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Composition.section:Speciman.title | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.author | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.focus | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.mode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.orderedBy | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.entry | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.emptyReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Composition.section:Speciman.section | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |