{
"description": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain.",
"_filename": "StructureDefinition-VisitDetail.json",
"package_name": "hl7.fhir.uv.omop",
"date": "2026-04-30T00:07:42+10:00",
"derivation": "specialization",
"publisher": "HL7 International / Biomedical Research and Regulation",
"fhirVersion": "5.0.0",
"jurisdiction": [ {
"coding": [ {
"code": "001",
"system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
"display": "World"
} ]
} ],
"name": "VisitDetail",
"mapping": [ {
"uri": "http://hl7.org/v3",
"name": "RIM Mapping",
"identity": "rim"
} ],
"abstract": false,
"type": "http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail",
"experimental": null,
"resourceType": "StructureDefinition",
"title": "Visit Detail OMOP Table",
"package_version": "1.0.0",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics",
"valueCode": "can-be-target"
}, {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode": "brr"
}, {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger": 2,
"_valueInteger": {
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
"valueCanonical": "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
} ]
}
}, {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
"valueCode": "informative",
"_valueCode": {
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
"valueCanonical": "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
} ]
}
} ],
"snapshot": {
"element": [ {
"path": "VisitDetail",
"min": 0,
"definition": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain.",
"isModifier": false,
"short": "Visit Detail OMOP Table",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"max": "*",
"id": "VisitDetail",
"base": {
"max": "*",
"min": 0,
"path": "Base"
}
}, {
"id": "VisitDetail.visit-detail-id",
"max": "1",
"min": 1,
"base": {
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_id"
},
"path": "VisitDetail.visit_detail_id",
"type": [ {
"code": "integer"
} ],
"short": "Visit Detail Identifier",
"definition": "Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail."
}, {
"id": "VisitDetail.person-id",
"max": "1",
"min": 1,
"base": {
"max": "1",
"min": 1,
"path": "VisitDetail.person_id"
},
"path": "VisitDetail.person_id",
"type": [ {
"code": "integer"
} ],
"short": "Person",
"definition": "Person"
}, {
"id": "VisitDetail.visit-detail-concept-id",
"max": "1",
"min": 1,
"base": {
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_concept_id"
},
"path": "VisitDetail.visit_detail_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Visit Detail",
"definition": "This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain."
}, {
"id": "VisitDetail.visit-detail-start-date",
"max": "1",
"min": 1,
"base": {
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_start_date"
},
"path": "VisitDetail.visit_detail_start_date",
"type": [ {
"code": "date"
} ],
"short": "Visit Detail Start Date",
"definition": "This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with."
}, {
"id": "VisitDetail.visit-detail-start-datetime",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.visit_detail_start_datetime"
},
"path": "VisitDetail.visit_detail_start_datetime",
"type": [ {
"code": "dateTime"
} ],
"short": "Visit Detail Start Datetime",
"definition": "Visit Detail Start Datetime"
}, {
"id": "VisitDetail.visit-detail-end-date",
"max": "1",
"min": 1,
"base": {
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_end_date"
},
"path": "VisitDetail.visit_detail_end_date",
"type": [ {
"code": "date"
} ],
"short": "Visit Detail End Date",
"definition": "This the end date of the patient-provider interaction. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull."
}, {
"id": "VisitDetail.visit-detail-end-datetime",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.visit_detail_end_datetime"
},
"path": "VisitDetail.visit_detail_end_datetime",
"type": [ {
"code": "dateTime"
} ],
"short": "Visit Detail End Datetime",
"definition": "If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull."
}, {
"id": "VisitDetail.visit-detail-type-concept-id",
"max": "1",
"min": 1,
"base": {
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_type_concept_id"
},
"path": "VisitDetail.visit_detail_type_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Visit Detail Type",
"definition": "Use this field to understand the provenance of the visit detail record, or where the record comes from."
}, {
"id": "VisitDetail.provider-id",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.provider_id"
},
"path": "VisitDetail.provider_id",
"type": [ {
"code": "integer"
} ],
"short": "Provider",
"definition": "There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record."
}, {
"id": "VisitDetail.care-site-id",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.care_site_id"
},
"path": "VisitDetail.care_site_id",
"type": [ {
"code": "integer"
} ],
"short": "Care Site",
"definition": "This field provides information about the Care Site where the Visit Detail took place."
}, {
"id": "VisitDetail.visit-detail-source-value",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.visit_detail_source_value"
},
"path": "VisitDetail.visit_detail_source_value",
"type": [ {
"code": "string"
} ],
"short": "Visit Detail Source Value",
"definition": "This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)"
}, {
"id": "VisitDetail.visit-detail-source-concept-id",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.visit_detail_source_concept_id"
},
"path": "VisitDetail.visit_detail_source_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Visit Detail Source Concept",
"definition": "Visit Detail Source Concept"
}, {
"id": "VisitDetail.admitted-from-concept-id",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.admitted_from_concept_id"
},
"path": "VisitDetail.admitted_from_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Admitted From",
"definition": "Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example."
}, {
"id": "VisitDetail.admitted-from-source-value",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.admitted_from_source_value"
},
"path": "VisitDetail.admitted_from_source_value",
"type": [ {
"code": "string"
} ],
"short": "Admitted From Source Value",
"definition": "Admitted From Source Value"
}, {
"id": "VisitDetail.discharged-to-source-value",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.discharged_to_source_value"
},
"path": "VisitDetail.discharged_to_source_value",
"type": [ {
"code": "string"
} ],
"short": "Discharged To Source Value",
"definition": "Discharged To Source Value"
}, {
"id": "VisitDetail.discharged-to-concept-id",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.discharged_to_concept_id"
},
"path": "VisitDetail.discharged_to_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Discharged To",
"definition": "Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for \"home\". Use concept id = 0 when a person is discharged to home."
}, {
"id": "VisitDetail.preceding-visit-detail-id",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.preceding_visit_detail_id"
},
"path": "VisitDetail.preceding_visit_detail_id",
"type": [ {
"code": "integer"
} ],
"short": "Preceding Visit",
"definition": "Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between."
}, {
"id": "VisitDetail.parent-visit-detail-id",
"max": "1",
"min": 0,
"base": {
"max": "1",
"min": 0,
"path": "VisitDetail.parent_visit_detail_id"
},
"path": "VisitDetail.parent_visit_detail_id",
"type": [ {
"code": "integer"
} ],
"short": "Parent Visit",
"definition": "Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship."
}, {
"id": "VisitDetail.visit-occurrence-id",
"max": "1",
"min": 1,
"base": {
"max": "1",
"min": 1,
"path": "VisitDetail.visit_occurrence_id"
},
"path": "VisitDetail.visit_occurrence_id",
"type": [ {
"code": "integer"
} ],
"short": "Visit Occurrence",
"definition": "Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE."
} ],
"extension": [ {
"url": "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version",
"valueString": "5.0.0"
} ]
},
"status": "active",
"id": "c8751b07-d92e-4eb2-a357-8b1663fcfaba",
"kind": "logical",
"url": "http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail",
"version": "1.0.0",
"differential": {
"element": [ {
"id": "VisitDetail",
"path": "VisitDetail",
"short": "Visit Detail OMOP Table",
"definition": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain."
}, {
"id": "VisitDetail.visit-detail-id",
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_id",
"type": [ {
"code": "integer"
} ],
"short": "Visit Detail Identifier",
"definition": "Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail."
}, {
"id": "VisitDetail.person-id",
"max": "1",
"min": 1,
"path": "VisitDetail.person_id",
"type": [ {
"code": "integer"
} ],
"short": "Person",
"definition": "Person"
}, {
"id": "VisitDetail.visit-detail-concept-id",
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Visit Detail",
"definition": "This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain."
}, {
"id": "VisitDetail.visit-detail-start-date",
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_start_date",
"type": [ {
"code": "date"
} ],
"short": "Visit Detail Start Date",
"definition": "This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with."
}, {
"id": "VisitDetail.visit-detail-start-datetime",
"max": "1",
"min": 0,
"path": "VisitDetail.visit_detail_start_datetime",
"type": [ {
"code": "dateTime"
} ],
"short": "Visit Detail Start Datetime",
"definition": "Visit Detail Start Datetime"
}, {
"id": "VisitDetail.visit-detail-end-date",
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_end_date",
"type": [ {
"code": "date"
} ],
"short": "Visit Detail End Date",
"definition": "This the end date of the patient-provider interaction. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull."
}, {
"id": "VisitDetail.visit-detail-end-datetime",
"max": "1",
"min": 0,
"path": "VisitDetail.visit_detail_end_datetime",
"type": [ {
"code": "dateTime"
} ],
"short": "Visit Detail End Datetime",
"definition": "If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull."
}, {
"id": "VisitDetail.visit-detail-type-concept-id",
"max": "1",
"min": 1,
"path": "VisitDetail.visit_detail_type_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Visit Detail Type",
"definition": "Use this field to understand the provenance of the visit detail record, or where the record comes from."
}, {
"id": "VisitDetail.provider-id",
"max": "1",
"min": 0,
"path": "VisitDetail.provider_id",
"type": [ {
"code": "integer"
} ],
"short": "Provider",
"definition": "There will only be one provider per **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record."
}, {
"id": "VisitDetail.care-site-id",
"max": "1",
"min": 0,
"path": "VisitDetail.care_site_id",
"type": [ {
"code": "integer"
} ],
"short": "Care Site",
"definition": "This field provides information about the Care Site where the Visit Detail took place."
}, {
"id": "VisitDetail.visit-detail-source-value",
"max": "1",
"min": 0,
"path": "VisitDetail.visit_detail_source_value",
"type": [ {
"code": "string"
} ],
"short": "Visit Detail Source Value",
"definition": "This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)"
}, {
"id": "VisitDetail.visit-detail-source-concept-id",
"max": "1",
"min": 0,
"path": "VisitDetail.visit_detail_source_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Visit Detail Source Concept",
"definition": "Visit Detail Source Concept"
}, {
"id": "VisitDetail.admitted-from-concept-id",
"max": "1",
"min": 0,
"path": "VisitDetail.admitted_from_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Admitted From",
"definition": "Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example."
}, {
"id": "VisitDetail.admitted-from-source-value",
"max": "1",
"min": 0,
"path": "VisitDetail.admitted_from_source_value",
"type": [ {
"code": "string"
} ],
"short": "Admitted From Source Value",
"definition": "Admitted From Source Value"
}, {
"id": "VisitDetail.discharged-to-source-value",
"max": "1",
"min": 0,
"path": "VisitDetail.discharged_to_source_value",
"type": [ {
"code": "string"
} ],
"short": "Discharged To Source Value",
"definition": "Discharged To Source Value"
}, {
"id": "VisitDetail.discharged-to-concept-id",
"max": "1",
"min": 0,
"path": "VisitDetail.discharged_to_concept_id",
"type": [ {
"code": "code"
} ],
"short": "Discharged To",
"definition": "Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for \"home\". Use concept id = 0 when a person is discharged to home."
}, {
"id": "VisitDetail.preceding-visit-detail-id",
"max": "1",
"min": 0,
"path": "VisitDetail.preceding_visit_detail_id",
"type": [ {
"code": "integer"
} ],
"short": "Preceding Visit",
"definition": "Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between."
}, {
"id": "VisitDetail.parent-visit-detail-id",
"max": "1",
"min": 0,
"path": "VisitDetail.parent_visit_detail_id",
"type": [ {
"code": "integer"
} ],
"short": "Parent Visit",
"definition": "Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship."
}, {
"id": "VisitDetail.visit-occurrence-id",
"max": "1",
"min": 1,
"path": "VisitDetail.visit_occurrence_id",
"type": [ {
"code": "integer"
} ],
"short": "Visit Occurrence",
"definition": "Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE."
} ]
},
"contact": [ {
"name": "HL7 International / Biomedical Research and Regulation",
"telecom": [ {
"value": "http://www.hl7.org/Special/committees/rcrim",
"system": "url"
} ]
} ],
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Base"
}