@@ -372,6 +372,19 @@ <h5 class="summary-heading-medications">Medications</h5>
372372 </ ng-template >
373373 </ div >
374374
375+ < div class ="clinical-summary-section ">
376+ < h5 class ="summary-heading-medications "> Immunizations</ h5 >
377+ < div class ="clinical-summary-list " *ngIf ="immunizations.length > 0; else noImmunizations ">
378+ < div class ="clinical-summary-item "
379+ *ngFor ="let immunization of getSortedImmunizations() ">
380+ < div class ="item-name "> {{ immunization.vaccineCode.text || immunization.vaccineCode.coding?.[0]?.display }}</ div >
381+ </ div >
382+ </ div >
383+ < ng-template #noImmunizations >
384+ < div class ="no-clinical-data "> No immunizations recorded</ div >
385+ </ ng-template >
386+ </ div >
387+
375388 < div class ="clinical-summary-section ">
376389 < h5 class ="summary-heading-allergies "> Allergic to:</ h5 >
377390 < div class ="clinical-summary-list " *ngIf ="allergies.length > 0; else noAllergies ">
@@ -414,6 +427,7 @@ <h5>CDS</h5>
414427 [conditions] ="conditions "
415428 [procedures] ="procedures "
416429 [medications] ="medications "
430+ [immunizations] ="immunizations "
417431 [allergies] ="allergies "
418432 [encounters] ="encounters ">
419433 </ app-clinical-timeline >
@@ -438,6 +452,7 @@ <h5>CDS</h5>
438452 [conditions] ="conditions "
439453 [procedures] ="procedures "
440454 [medications] ="medications "
455+ [immunizations] ="immunizations "
441456 [allergies] ="allergies "
442457 (openProblemsList) ="selectClinicalView('problems') ">
443458 </ app-problems-list-simplified >
@@ -463,6 +478,7 @@ <h5>CDS</h5>
463478 [conditions] ="conditions "
464479 [procedures] ="procedures "
465480 [medications] ="medications "
481+ [immunizations] ="immunizations "
466482 [allergies] ="allergies "
467483 (openProblemsList) ="selectClinicalView('problems') ">
468484 </ app-problems-list-simplified >
@@ -512,6 +528,15 @@ <h3>Add Problem</h3>
512528 < mat-icon > medication</ mat-icon >
513529 Add Medication
514530 </ button >
531+ < button mat-raised-button
532+ color ="primary "
533+ (click) ="toggleImmunizationEntry() "
534+ [disabled] ="isProcessingNewEvent "
535+ class ="entry-toggle-button medication-button "
536+ [class.active] ="immunizationEntry?.showAddForm ">
537+ < mat-icon > vaccines</ mat-icon >
538+ Add Immunization
539+ </ button >
515540 </ div >
516541 </ div >
517542
@@ -548,6 +573,16 @@ <h3>Add Problem</h3>
548573 (itemAdded) ="onMedicationAdded($event) "
549574 (formOpened) ="onClinicalEntryFormOpened($event) ">
550575 </ app-clinical-entry >
576+
577+ < app-clinical-entry
578+ #immunizationEntry
579+ [patientId] ="patient.id "
580+ entryType ="immunization "
581+ [hideButton] ="true "
582+ [saving] ="savingEntryType === 'immunization' "
583+ (itemAdded) ="onImmunizationAdded($event) "
584+ (formOpened) ="onClinicalEntryFormOpened($event) ">
585+ </ app-clinical-entry >
551586 </ div >
552587 </ div >
553588
@@ -690,7 +725,7 @@ <h4><mat-icon>healing</mat-icon> Procedures</h4>
690725 < h4 > < mat-icon > medication</ mat-icon > Medications</ h4 >
691726 < span class ="item-count "> {{ medications.length }}</ span >
692727 </ div >
693- < div class ="clinical-list compact " *ngIf ="medications.length > 0; else noMedications ">
728+ < div class ="clinical-list compact " *ngIf ="medications.length > 0; else noMedications ">
694729 < div class ="clinical-item compact " *ngFor ="let medication of getSortedMedications() ">
695730 < div class ="item-header compact ">
696731 < span class ="item-title compact "> {{ medication.medicationCodeableConcept?.text }}</ span >
@@ -728,6 +763,38 @@ <h4><mat-icon>medication</mat-icon> Medications</h4>
728763 < ng-template #noMedications >
729764 < div class ="no-clinical-data compact "> No medications recorded</ div >
730765 </ ng-template >
766+
767+ < div class ="column-header secondary-column-header ">
768+ < h4 > < mat-icon > vaccines</ mat-icon > Immunizations</ h4 >
769+ < span class ="item-count "> {{ immunizations.length }}</ span >
770+ </ div >
771+ < div class ="clinical-list compact " *ngIf ="immunizations.length > 0; else noImmunizationsList ">
772+ < div class ="clinical-item compact " *ngFor ="let immunization of getSortedImmunizations() ">
773+ < div class ="item-header compact ">
774+ < span class ="item-title compact "> {{ immunization.vaccineCode.text || immunization.vaccineCode.coding?.[0]?.display }}</ span >
775+ < div class ="item-header-actions compact ">
776+ < button mat-icon-button
777+ class ="delete-button compact "
778+ (click) ="deleteImmunization(immunization.id) "
779+ title ="Delete immunization ">
780+ < mat-icon > delete_outline</ mat-icon >
781+ </ button >
782+ </ div >
783+ </ div >
784+ < div class ="item-details compact inline ">
785+ < span class ="item-concept-id compact " *ngIf ="immunization.vaccineCode.coding?.[0]?.code ">
786+ {{ immunization.vaccineCode.coding?.[0]?.code }}
787+ </ span >
788+ < span class ="item-status compact "> {{ immunization.status }}</ span >
789+ < span class ="item-status compact " *ngIf ="immunization.occurrenceDateTime ">
790+ {{ immunization.occurrenceDateTime | date:'MMM d, y' }}
791+ </ span >
792+ </ div >
793+ </ div >
794+ </ div >
795+ < ng-template #noImmunizationsList >
796+ < div class ="no-clinical-data compact "> No immunizations recorded</ div >
797+ </ ng-template >
731798 </ div >
732799 </ div >
733800 </ div >
@@ -809,6 +876,7 @@ <h4><mat-icon>receipt_long</mat-icon> Saved Orders</h4>
809876 [conditions] ="conditions "
810877 [procedures] ="procedures "
811878 [medications] ="medications "
879+ [immunizations] ="immunizations "
812880 [allergies] ="allergies "
813881 (openProblemsList) ="selectClinicalView('problems') ">
814882 </ app-problems-list-simplified >
@@ -831,6 +899,7 @@ <h4><mat-icon>receipt_long</mat-icon> Saved Orders</h4>
831899 [conditions] ="conditions "
832900 [procedures] ="procedures "
833901 [medications] ="medications "
902+ [immunizations] ="immunizations "
834903 [allergies] ="allergies "
835904 (openProblemsList) ="selectClinicalView('problems') ">
836905 </ app-problems-list-simplified >
0 commit comments