양식 인쇄
목적과 이점
‘양식 인쇄’ 기능을 통해 의사는 시스템의 양식을 인쇄하여 입원 부서에 전달할 수 있습니다. 예를 들어 의사가 입원 주문 양식을 작성할 수 있습니다. 별도의 알림 기능이 없으므로 입원 병동 간호사가 내용을 받으려면 인쇄된 입원 주문 양식을 병동으로 보내야 합니다.
인쇄 버튼은 아래 스크린샷과 같이 표시됩니다.

병력 및 진찰 양식에서 인쇄 버튼을 눌러 생성한 PDF 예시입니다.

양식 인쇄 기능 구성
양식 보기에서 인쇄 기능을 활성화하려면 clinical/dashboard.json의 양식 표시 제어 구성에 아래 설정을 추가해야 합니다.
구성 설명
| Field Name | Description | Mandatory |
|---|---|---|
| printing | Config to enable the print functionality. This configuration is required for the print button to be shown in the forms view page. | Yes |
| printDiagnosis | This is type of diagnosis we want to print in the form print.For eg: if we want to show the diagnosis which are primary and confirmed, we need to give the order as PRIMARY and certainity as CONFIRMED | No |
| observationsConcepts | This is a list of concepts. This is to fetch the latest observation captured for the patients for the given concepts which can then be consumed in the custom template to show values like patient's height, weight, etc. | No |
| templateUrl | This field is required for the custom template to be used for printing the forms. If we want a default Bahmni's template and not the custom one, we need to remove this config | No |
참고: 진단, 관찰값 등의 사용자 정의 옵션을 PDF에 표시하려면 해당 데이터를 보여 줄 적절한 CSS와 HTML 요소가 포함된 사용자 정의 템플릿을 제공해야 합니다. 아래의 예제 HTML(formPrint.html)을 참조할 수 있습니다.
formPrint.html 예시:
@media print {
/* Hide the header */
@page { margin-top: 20px; }
header, .header {
display: none !important;
}
/* Hide the footer */
@page { margin-bottom: 20px; }
footer, .footer {
display: none !important;
}
}
{{printConfig.title}}
{{printConfig.header}}
Name of the Patient: {{patient.name}} ({{patient.identifier}})
Date : {{additionalInfo.currentDate | bahmniDate}}
Age:
{{patient.birthdate | dateToAge:visit.dateStarted}}
Sex: {{patient.genderText.substring(6, patient.genderText.length - 7)}}
Weight: {{observationsEntries[0].value}} {{observationsEntries[0].concept.units}}
Address: {{patient.address.address5}}
Kebele: {{patient.address.address4}}
Woreda: {{patient.address.address3}}
Zone: {{patient.address.address2}}
Region: {{patient.address.address1}}
Country: {{patient.address.country}}
Tel no: {{patient.mobilePhone.value}}
Visit Type: {{additionalInfo.visitType}}
Diagnosis (ICD-10 code): {{ diagnosesWithCodes }}
Allergies: {{ allergies.length > 0 ? allergies : "No allergies recorded for this patient"}}
{{::title |
translate}}
0">
0">
{{::obsGroup.date | bahmniDateTime}}
{{::message|translate}}
Other Notes :
Signature:
Date:
]]>
<link rel="stylesheet" href="/bahmni_config/openmrs/apps/clinical/clinicalPrints/css/print.css"/>
<style>
@media print {
/* Hide the header */
@page { margin-top: 20px; }
header, .header {
display: none !important;
}
/* Hide the footer */
@page { margin-bottom: 20px; }
footer, .footer {
display: none !important;
}
}
</style>
<div class="print-wrapper custom-print-style">
<div class="print-header" ng-if="printConfig">
<div class="print-logo-plus-text">
<img class="print-logo" width="125px" ng-if="printConfig.logo" ng-src="{{printConfig.logo}}" alt="logo"/>
<h1 class="print-logo-text">{{printConfig.title}}</h1>
<div class="print-right"></div>
</div>
<div class="clinic-info">
<span> {{printConfig.header}}</span>
</div>
<div style="float: left;text-align: left;font-size: 10pt;font-weight: bold;margin-bottom: 10px;margin-top: 10px;"
ng-bind-html="additionalInfo.facilityLocation.address5"></div>
</div>
<!-- Patient Info -->
<div class="patient-info">
<table>
<tr>
<td colspan="2" style="font-size: 12pt;">Name of the Patient: <span class="value">{{patient.name}} ({{patient.identifier}})</span></td>
<td>Date : <span class="value">{{additionalInfo.currentDate | bahmniDate}}</span></td>
</tr>
<tr>
<td>Age: <span class="value">
{{patient.birthdate | dateToAge:visit.dateStarted}}
</span></td>
<td>Sex: <span class="value">{{patient.genderText.substring(6, patient.genderText.length - 7)}}</span></td>
<td>Weight: <span class="value">{{observationsEntries[0].value}} {{observationsEntries[0].concept.units}}</span></td>
</tr>
<tr>
<td>Address: <span class="value">{{patient.address.address5}}</span></td>
<td>Kebele: <span class="value">{{patient.address.address4}}</span></td>
<td>Woreda: <span class="value">{{patient.address.address3}}</span></td>
</tr>
<tr>
<td>Zone: <span class="value">{{patient.address.address2}}</span></td>
<td>Region: <span class="value">{{patient.address.address1}}</span></td>
<td>Country: <span class="value">{{patient.address.country}}</span></td>
</tr>
<tr>
<td>Tel no: <span class="value">{{patient.mobilePhone.value}}</span></td>
<td colspan="2">Visit Type: <span class="value"> {{additionalInfo.visitType}} </span></td>
</tr>
<tr>
<td>Diagnosis (ICD-10 code): <span class="value">{{ diagnosesWithCodes }}</span></td>
<td colspan="2">Allergies: <span class="value"> {{ allergies.length > 0 ? allergies : "No allergies recorded for this patient"}} </span></td>
</tr>
<tr>
</tr>
</table>
</div>
<!-- Form Info -->
<div class="sections-group">
<div class="section">
<section class="block observation dashboard-section" id="observationSection">
<ul bm-gallery access-impression="true">
<section class="block " ng-class="::{'hidden-print': noObsMessage}">
<h2 class="tableMargin"
ng-class="::{'section-title': !isFulfilmentDisplayControl, 'form-field': isFulfilmentDisplayControl}">{{::title |
translate}}</h2>
<div class="concept-set-container-view">
<section class="block hierarchy">
<ul class="form-field" ng-if="bahmniObservations.length > 0">
<li class="tableMargin" ng-repeat="obsGroup in ::bahmniObservations">
<span class="tree-list-item row-click toggle-container" toggle="obsGroup.isOpen">
<span class="obs-date" ng-if="obsGroup.value.length > 0">
{{::obsGroup.date | bahmniDateTime}}
</span>
</span>
<ul class="print-observations visible-print">
<li class="tableBorder" ng-repeat="observation in ::obsGroup.value track by $index">
<ul>
<show-observation show-details-button="::config.showDetailsButton" patient="::patient"
observation="::observation"
level="2"
template-url="/bahmni_config/openmrs/apps/clinical/clinicalPrints/showObservations.html">
</show-observation>
</ul>
</li>
</ul>
</li>
</ul>
<div ng-if="::noObsMessage">
<div class="placeholder-text" ng-if="::!message"><p translate="DISPLAY_CONTROL_ERROR_MESSAGE_KEY"
translate-values="::{displayControl : '{{title | translate}}'}"></p>
</div>
<div class="placeholder-text" ng-if="::message">{{::message|translate}}</div>
</div>
</section>
</div>
</section>
</ul>
</section>
</div>
</div>
<!-- Footer -->
<div class="print-form-footer">
<label for="other-notes">Other Notes :</label>
<input type="text" id="other-notes" class="other-notes" />
<span class="footer-table-left">
<table>
<tr>
<td>Signature: </td>
</tr>
</table>
</span>
<span class="footer-table-right">
<table>
<tr>
<td>Date: </td>
</tr>
</table>
</span>
</div>
</div>Bahmni Wiki · CC BY-SA 4.0