icd-autocomplete.js 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. (function() {
  2. function init() {
  3. let self = this;
  4. $('[icd-autocomplete-code]:not([ac-initialized])').each(function() {
  5. let elem = this, dynID = 'icd-' + Math.ceil(Math.random() * 1000000),
  6. codeElem = $(this), descElem = $(this).closest('form, tr').first().find('[icd-autocomplete-description]');
  7. var targetDescElem = $(this).data('target');
  8. if(targetDescElem){
  9. descElem = $(this).closest('form').find(targetDescElem);
  10. }
  11. $(elem).attr('id', dynID);
  12. new window.Def.Autocompleter.Search(dynID,
  13. 'https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search?sf=code,name&ef=name', {
  14. tableFormat: true,
  15. valueCols: [0],
  16. colHeaders: ['Code', 'Name'],
  17. }
  18. );
  19. window.Def.Autocompleter.Event.observeListSelections(dynID, function() {
  20. let autocomp = elem.autocomp, acData = autocomp.getSelectedItemData();
  21. codeElem.val(acData[0].code).trigger('change');
  22. descElem.val(acData[0].data['name']).attr('title', acData[0].data['name']).trigger('change');
  23. return false;
  24. });
  25. $(elem).attr('ac-initialized', 1);
  26. });
  27. }
  28. addMCInitializer('icd-autocomplete', init);
  29. }).call(window);