SHARE
TWEET

Untitled

dean360 May 21st, 2019 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. import React from 'react'
  4. import ReactDOM from 'react-dom'
  5. import Store from '/imports/store'
  6. import AutoForm from 'react-auto-form'
  7. import { diff } from 'deep-object-diff'
  8. import classNames from 'classnames'
  9. import dot from 'dot-object'
  10.  
  11. class AddInsurance extends React.Component {
  12.  
  13.  
  14.   constructor(props) {
  15.     super(props)
  16.     this.state = {
  17.       selectedPatient: null,
  18.       selectedCarrier: null,
  19.       selectedCarrierPlan: null,
  20.       self: true,
  21.       dependent: false,
  22.       none: true,
  23.       partTime: false,
  24.       planFlag: false,
  25.       isStudent: false
  26.  
  27.     }
  28.   }
  29.  
  30.  
  31.  
  32.  
  33.   componentDidMount = () => {
  34.  
  35.     let { patient } = this.props;
  36.     $('#addInsurance').on('hidden.bs.modal', () => patient.set('addInsuranceModal')(null));
  37.     $('#addInsurance').on('shown.bs.modal', () => $('.kt-selectpicker').selectpicker());
  38.   }
  39.  
  40.  
  41.  
  42.   componentDidUpdate() {
  43.     $('.kt-selectpicker').selectpicker('refresh');
  44.  
  45.   }
  46.  
  47.   _onChange = (event, name, data, change) => {
  48.  
  49.     // toggel 'Plan Flag From' based on Select Operation
  50.     if (name == 'planFlag') {
  51.       change['planFlag'] == 'on' ? this.setState({ planFlag: true }) : this.setState({ planFlag: false })
  52.     }
  53.  
  54.     if (name == 'rtosub') {
  55.       event.target.value == 'self' ? this.setState({ employer: true }) : this.setState({ employer: false })
  56.     }
  57.  
  58.     if (name == 'student') {
  59.       change['student'] == 'on' ? this.setState({ isStudent: true }) : this.setState({ isStudent: false })
  60.     }
  61.  
  62.     if (name == 'employmentStatus') {
  63.       event.target.value == 'partTime' ? this.setState({ partTime: true }) : this.setState({ partTime: false })
  64.     }
  65.  
  66.   }
  67.  
  68.   _onSubmit = (event, data) => {
  69.  
  70.     event.preventDefault();
  71.     let { patient } = this.props
  72.     let userId = Fetcher.get('profile')._id // profile userId
  73.     let path = 'profile.insurance.plans' // path
  74.  
  75.  
  76.     // format AddInsurance data object
  77.     var dataObj = {
  78.       'details.carrierId': this.carrierId,
  79.       'details.employer': data.employer,
  80.       'details.employmentStatus': data.employmentStatus,
  81.       'details.startDate': this.state.partTime ? new Date(data.startDate) : '',
  82.       'details.policyNumber': Number(this.policyNumber),
  83.       'details.policyDivision': Number(data.policyDivision),
  84.       'details.cardSequence': Number(data.cardSequence),
  85.       'details.subscriberName': this.state.self ? data.subscriberName = userId : data.subscriberName,
  86.       'details.rtosub': this.state.self ? data.rtosub = 'self' : data.rtosub,
  87.       'details.subscriberID': data.subscriberID,
  88.       'eligibility.diagonostic': data.diagonostic,
  89.       'eligibility.instituition': data.instituition,
  90.       'eligibility.dependentCode': Number(data.dependentCode),
  91.       'eligibility.exceptions.student': data.student ? data.student = true : data.student = false,
  92.       'eligibility.exceptions.schoolName': data.schoolName,
  93.       'eligibility.exceptions.disabled': data.disabled ? data.disabled = true : data.disabled = false,
  94.       'status': data.status ? data.status = true : data.status = false,
  95.       'forms.releaseofInfo': data.releaseofInfo ? data.releaseofInfo = true : data.releaseofInfo = false,
  96.       'forms.benefitsForms': data.benefitsForms ? data.benefitsForms = true : data.benefitsForms = false,
  97.       'usage.adjustment.patientDeduct.amount': '',
  98.       'usage.adjustment.accountDeduct.amount': '',
  99.       'usage.patientRemaining': '',
  100.       'usage.accountRemaining': '',
  101.       'usage.planRemaining': '',
  102.       'usage.used': '',
  103.  
  104.  
  105.     };
  106.     dot.object(dataObj);
  107.  
  108.     Meteor.call('patient.addEl', userId, path, dataObj, (error, res) => {
  109.       if (error) console.log('error', error);
  110.       patient.set("addInsurance")(patient.get("addInsurance") + 1);
  111.       $('#addInsurance').modal('toggle')
  112.     });
  113.  
  114.   }
  115.  
  116.  
  117.   handelRelationToSubscriber = (event) => {
  118.     event.target.value == 'self' ? this.setState({ self: true }) : this.setState({ self: false })
  119.     event.target.value == 'spouse' || event.target.value == 'dependendtChild' || event.target.value == 'other' ? this.setState({ dependent: true, }) : this.setState({ dependent: false })
  120.   }
  121.  
  122.   handelSpecialCoverage = (event) => {
  123.     event.target.value == 'nmcp' ? this.setState({ planFlag: true }) : this.setState({ planFlag: false })
  124.   }
  125.  
  126.   render() {
  127.     let store = this.props.store
  128.     return (
  129.       <div className="modal fade" id="addInsurance" role="dialog" aria-hidden="true">
  130.         <div className="modal-dialog modal-md" role="document">
  131.           <div className="modal-content">
  132.             <div className="modal-header">
  133.               <h5 className="modal-title" > Add Insurance </h5>
  134.               <button type="button" className="close" data-dismiss="modal" aria-label="Close">
  135.                 <span aria-hidden="true"> × </span>
  136.               </button>
  137.             </div>
  138.             <div className="modal-body">
  139.  
  140.  
  141.               <AutoForm id='addInsuranceForm' onChange={this._onChange} onSubmit={this._onSubmit} trimOnSubmit>
  142.  
  143.                 <input type="hidden" defaultValue="something" />
  144.  
  145.  
  146.                 <div className="kt-form__group ">
  147.                   <label >Relation to Subscriber:</label>
  148.                   <div className="kt-radio-inline kt-margin-t-10">
  149.                     <label className="kt-radio">
  150.                       <input type="radio" name="radio_2" ref="self" value="self" defaultChecked onChange={this.handelRelationToSubscriber} /> Self
  151.                         <span />
  152.                     </label>
  153.                     <label className="kt-radio" >
  154.                       <input type="radio" name="radio_2" ref="spouse" value="spouse" onChange={this.handelRelationToSubscriber} /> Spouse
  155.                           <span />
  156.                     </label>
  157.                     <label className="kt-radio" >
  158.                       <input type="radio" name="radio_2" ref="dependendtChild" value="dependendtChild" onChange={this.handelRelationToSubscriber} /> Dependendt Child
  159.                           <span />
  160.                     </label>
  161.                     <label className="kt-radio">
  162.                       <input type="radio" name="radio_2" ref="other" value="other" onChange={this.handelRelationToSubscriber} /> Other
  163.                           <span />
  164.                     </label>
  165.                   </div>
  166.  
  167.                 </div>
  168.  
  169.  
  170.                 {<Choose>
  171.                   <When condition={this.state.self}>
  172.  
  173.  
  174.                     <div className="form-group kt-margin-t-15">
  175.                       <label> <span className="kt-font-danger">*</span> Insurnace Group /Plan #: </label>
  176.                       <div className="input-group">
  177.                         <div className="input-group-prepend"><span className="input-group-text"><i className="fa fa-search kt-font-brand" data-fa-transform="rotate-180" /></span></div>
  178.                         <select className="form-control carriorInsPlan" data-live-search="true" name='carrior'></select>
  179.                       </div>
  180.                     </div>
  181.  
  182.  
  183.                     <div className="row kt-margin-t-10">
  184.                       <div className="col-4  kt-form__group">
  185.                         <label>Employer Name<span className="kt-font-danger">*</span> </label>
  186.                         <input className="form-control " type="text" name="employer" autoComplete="EmployerName" />
  187.                       </div>
  188.                       <div className="col-4  kt-form__group">
  189.                         <label>Employment Status<span className="kt-font-danger">*</span> </label>
  190.                         <select className="form-control kt-selectpicker" data-size="4" name="employmentStatus">
  191.                           <option value='fullTime'> Full-Time</option>
  192.                           <option value='partTime'>Part-time</option>
  193.                           <option value='retiree'> Retiree</option>
  194.                         </select>
  195.                       </div>
  196.  
  197.                       {<Choose>
  198.                         <When condition={this.state.partTime}>
  199.  
  200.                           <div className="col-4  kt-form__group">
  201.                             <label> <span className="kt-font-danger"></span> Plan Start Date:</label>
  202.                             <input type="text" className="form-control" id="m_datepicker_75" name="startDate" autoComplete="new-password" />
  203.                           </div>
  204.  
  205.                         </When>
  206.                       </Choose>}
  207.  
  208.                     </div>
  209.  
  210.  
  211.  
  212.  
  213.                     <div className="row kt-margin-t-10">
  214.                       <div className="col-4  kt-form__group">
  215.                         <label> <span className="kt-font-danger">*</span> Subscriber ID:</label>
  216.                         <input type="text" className="form-control " name="subscriberID" />
  217.                       </div>
  218.                       <div className="col-4  kt-form__group">
  219.                         <label> Policy Division:  </label>
  220.                         <input type="text" className="form-control " name="policyDivision" />
  221.                       </div>
  222.                       <div className="col-4  kt-form__group">
  223.                         <label> Card Sequence #:   </label>
  224.                         <input type="text" className="form-control " name="cardSequence" />
  225.                       </div>
  226.                     </div>
  227.  
  228.  
  229.                     <div className=" kt-form__group kt-margin-t-15 kt-padding-10 " style={{ border: '4px solid #f7f7fa' }}>
  230.  
  231.                       <div className="row" >
  232.  
  233.                         <div className="col-6 kt-form__group ">
  234.                           <label >Special Coverage</label>
  235.                           <div className="kt-radio-inline kt-margin-t-10">
  236.                             <label className="kt-radio">
  237.                               <input type="radio" name="radio_1" value="none" defaultChecked onChange={this.handelSpecialCoverage} /> None
  238.                                   <span />
  239.                             </label>
  240.                             <label className="kt-radio" >
  241.                               <input type="radio" name="radio_1" value="nmcp" onChange={this.handelSpecialCoverage} /> N.M.C.P
  242.                                     <span />
  243.                             </label>
  244.                             <label className="kt-radio">
  245.                               <input type="radio" name="radio_1" value="vaPlan" onChange={this.handelSpecialCoverage} /> V.A Plan
  246.                                 <span />
  247.                             </label>
  248.                           </div>
  249.                         </div>
  250.  
  251.                         <div className="col-4 kt-form__group " style={{ paddingRight: 0, paddingLeft: 0 }}>
  252.                           <label>Eligibility Exception:</label>
  253.                           <div className="kt-checkbox-inline kt-margin-t-10">
  254.                             <label className="kt-checkbox">
  255.                               <input type="checkbox" name="student" /> Student <span />
  256.                             </label>
  257.                             <label className="kt-checkbox">
  258.                               <input type="checkbox" name="disabled" /> Disabled <span />
  259.                             </label>
  260.                           </div>
  261.                         </div>
  262.                         <div className="col-2">
  263.                           <div className=" kt-form__group">
  264.                             <label> Depent:  </label>
  265.                             <input type="text" className="form-control " name="dependentCode" />
  266.                           </div>
  267.                         </div>
  268.                       </div>
  269.  
  270.  
  271.                       {<Choose>
  272.                         <When condition={this.state.planFlag}>
  273.                           <div className="col-6 row">
  274.                             <div className="col-6  kt-form__group">
  275.                               <label className="form-control-label"> Diagonostic: </label>
  276.                               <input type="text" type="text" className="form-control" name="diagonostic" autoComplete="diagonostic" />
  277.                             </div>
  278.                             <div className="col-6  kt-form__group">
  279.                               <label className="form-control-label"> Instituition:</label>
  280.                               <input type="text" type="text" className="form-control" name="instituition" autoComplete="instituition" />
  281.                             </div>
  282.                           </div>
  283.                         </When>
  284.                       </Choose>}
  285.  
  286.                       <div className={classNames(" kt-form__group", { 'kt-hide': !this.state.isStudent })}>
  287.                         <label className="form-control-label"> School Name: </label>
  288.                         <input type="text" type="text" className="form-control" name="schoolName" autoComplete="off" />
  289.                       </div>
  290.  
  291.                     </div>
  292.  
  293.  
  294.  
  295.                   </When>
  296.                 </Choose>}
  297.  
  298.  
  299.                 {<Choose>
  300.                   <When condition={this.state.dependent}>
  301.                     <div className=" kt-form__group kt-margin-t-10">
  302.                       <label> <span className="kt-font-danger">*</span> Subscriber Name:</label>
  303.                       <select className="form-control subName" data-live-search="true" name="subscriberName" title="Search for patients">
  304.                         {/* <For each="item" index="idx" of={store.get('patientsList')}>
  305.                               <option key={idx} value={item._id}>{item.name}</option>
  306.                             </For> */}
  307.                       </select>
  308.                     </div>
  309.                   </When>
  310.                 </Choose>}
  311.  
  312.  
  313.  
  314.                 <div className="row kt-margin-t-15">
  315.  
  316.                   <div className="col-4  form-group ">
  317.                     <label>Remaining Insurnace</label>
  318.                     <div className="input-group">
  319.                       <div className="input-group-prepend">
  320.                          <span className="input-group-text">
  321.                         <i className="la la-dollar kt-font-brand" /></span>
  322.                       </div>
  323.                       <input type="text" className="form-control " name="usedBenefits" />
  324.                     </div>
  325.                   </div>
  326.                   <div className="col-4  form-group ">
  327.                     <label>Remaining Deductible </label>
  328.                     <div className="input-group">
  329.                       <div className="input-group-prepend">
  330.                          <span className="input-group-text">
  331.                         <i className="la la-user kt-font-brand" /></span>
  332.                       </div>
  333.                       <input type="text" className="form-control " name="usedDeductible" />
  334.                     </div>
  335.                   </div>
  336.                   <div className="col-4  form-group ">
  337.                     <label>Rem Account Deductible</label>
  338.                     <div className="input-group">
  339.                       <div className="input-group-prepend">
  340.                          <span className="input-group-text">
  341.                         <i className="la la-users kt-font-brand" /></span>
  342.                       </div>
  343.                       <input type="text" className="form-control " name="accountDeductible" />
  344.                     </div>
  345.                   </div>
  346.                 </div>
  347.  
  348.  
  349.                 <div className="row kt-margin-t-15">
  350.  
  351.                   <div className="col-9  kt-form__group">
  352.                     <label className=" kt-padding-b-10"> <span className="kt-font-danger">*</span> Insurnace forms </label>
  353.                     <div className="kt-checkbox-inline row">
  354.                       <div className="col-6">
  355.                         <label className="kt-checkbox">
  356.                           <input type="checkbox" name="releaseofInfo" /> Release of Information <span />
  357.                         </label>
  358.                       </div>
  359.                       <div className="col-6" style={{ paddingRight: 0 }}>
  360.                         <label className="kt-checkbox">
  361.                           <input type="checkbox" name="benefitsForms" /> Assignment of benefits <span />
  362.                         </label>
  363.                       </div>
  364.                     </div>
  365.                   </div>
  366.  
  367.                   <div className="col-3  kt-form__group text-center">
  368.                     <label style={{ display: 'block' }}> <span className="kt-font-danger">*</span> Plan Active</label>
  369.                     <span className="kt-switch kt-switch--icon">
  370.                       <label>
  371.                         <input type="checkbox" defaultChecked="checked" name="status" />
  372.                         <span />
  373.                       </label>
  374.                     </span>
  375.                   </div>
  376.  
  377.                 </div>
  378.  
  379.                 <div className="modal-footer kt-padding-b-10">
  380.                   <button type="button" className="col-2 btn btn-secondary kt-margin-r-10" data-dismiss="modal"> Close </button>
  381.                   <button type="submit" className="col-2 btn btn-primary kt-margin-l-10"> Save </button>
  382.                 </div>
  383.  
  384.               </AutoForm>
  385.             </div>
  386.           </div>
  387.         </div>
  388.       </div>
  389.     )
  390.   }
  391. }
  392. export default Store.withStores(AddInsurance);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top