Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Consider the following example to add a birthCertificate as a new directive:

Code Block
languagejs
linenumberstrue
'use strict';
angular.module('bahmni.common.displaycontrol.custom')
    .directive('birthCertificate', ['observationsService', 'appService', 'spinner', function (observationsService, appService, spinner) {
            var link = function ($scope,element) {
                var conceptNames = ["HEIGHT"];
                $scope.contentUrl = appService.configBaseUrl() + "/customDisplayControl/views/birthCertificate.html";
                spinner.forPromise(observationsService.fetch($scope.patient.uuid, conceptNames, "latest", undefined, $scope.visitUuid, undefined).then(function (response) {
                    $scope.observations = response.data;
                }), element);
            };
            return {
                restrict: 'E',
                template: '<ng-include src="contentUrl"/>',
                link: link
            }
    }])

In the above example, the concept names we want to fetch is configured in the variable conceptNames.

To display spinner for each display control while loading, element should be passed in spinner.forPromise() as shown in above example.

You can create your own template in the directive "openmrs/apps/customDisplayControl/views/"

Consider the following example to create a birthCertificate.html:

Code Block
languagexml
linenumberstrue
<div>
    {{config.title}}
    <section class="dashboard-section">
        <ul class="form-field">
            <li ng-repeat="obsGroup in observations">
                <span class="obs-date"> {{obsGroup.conceptNameToDisplay }} </span>
                <span class="obs-date"> {{obsGroup.value}} </span>
            </li>
        </ul>
    </section>
</div>